有人能认出我做错了什么吗

Can anybody figure out what I am doing wrong?

本文关键字:错了 什么      更新时间:2023-10-16

这是我的一个问题的解决方案,我试图解决它,直到我能得到弹性数量的编译器错误,但对于这个错误,我不确定它告诉我是什么

#include <iostream> 
using namespace std; 
#define MAX 99 
#define totaltriangle(w) ((1+(w-2))*(w/2)+w) 
#define totaldiamond(w) ((2+(w-2)+(w/2))*(w/2)+w) 
char triangle[totaltriangle(MAX)+MAX]; // array for the results 
char diamond[totaldiamond(MAX)+MAX]; 
int main(void) { 
    int width; 
    do{ // Get the diamond width 
        cout << "Diamond width: +;" 
        cin >> width; 
        cout << "Width = " << width << endl; 
    } while(width<1 || width>MAX || (width%2)==0); 
    // triangle 
    int tottri = totaltriangle(width)+width-1; 
    for(int i=0; i<tottri; i++){ 
        triangle[i] = '+'; 
    } 
    for(int i=1; i<=width/2; i++){ 
        int sq = i*i; 
        triangle[sq+i-1] = triangle[tottri-sq-i] = 'n'; 
    } 
    triangle[tottri] = 0; 
    cout << triangle <<endl; 
    // diamond 
    int tot = totaldiamond(width)+width-1; 
    int l=0; 
    for(int i=0; i<tot/2; l++, i++){ 
        for(int j=0; j<width/2-l; i++, j++){ 
            diamond[i] = ' '; 
            diamond[tot-i-2*(l+1)] = ' '; 
        } 
        diamond[tot-i-2*(l+1)] = 'n'; 
        for(int j=0; j<2*l+1; i++, j++){ 
            diamond[i] = '+'; 
            diamond[tot-i-1-l+width/2] = '+'; 
        } 
        diamond[i] = 'n'; 
    } 
    diamond[tot] = 0; 
    cout << diamond << endl; 
    return 0; 
}

几个小时以来,我一直在试图弄清楚这是怎么回事,但我现在只是一个初学者,所以我现在不知道这意味着什么。谢谢你的帮助。这是我收到的编译器错误消息。

./main.cpp: In function ‘int main()’:
./main.cpp:16:2: error: expected ‘;’ before ‘cin’
cin >> width; 
^

根据您自己的错误消息,行:

cout << "Diamond width: +;"
//                       ^ no

应该是:

cout << "Diamond width: +";
//                        ^ yes

再次查看您的错误消息:

./main.cpp: In function ‘int main()’:
./main.cpp:16:2: error: expected ‘;’ before ‘cin’
cin >> width; 
^

我提到的校正是在cin之前进行的。我没有查看您的其余代码,但如果您有其他问题,错误消息是您需要理解的,所以我会尝试为您分解它。

./main.cpp: In function ‘int main()’:行告诉问题在main.cpp文件的main函数中。

./main.cpp:16:2: error: expected ‘;’ before ‘cin’行告诉编译器正在"查看"第16行第2列,该行指向最后提到的cin >> width;部分的开头。

这很简单。