Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有人能找出我做错了什么吗?_C++ - Fatal编程技术网

C++ 有人能找出我做错了什么吗?

C++ 有人能找出我做错了什么吗?,c++,C++,这是我对一个问题的解决方案,我试着解决它,直到我能得到最多的编译器错误,但是对于这个错误,我不确定它告诉了我什么 #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(M

这是我对一个问题的解决方案,我试着解决它,直到我能得到最多的编译器错误,但是对于这个错误,我不确定它告诉了我什么

#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; 
}

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

cout << "Diamond width: +;"
//                       ^ no
我提到的更正是在
cin
之前立即进行的。我没有查看代码的其余部分,但是如果您有其他问题,则错误消息是您需要理解的,因此我将尝试为您细分

函数“int main()”中的行
/main.cpp:
告诉您问题在
main.cpp
文件的
main
函数中

/main.cpp:16:2:错误:应为“;”在'cin'之前,
告诉您编译器正在“查看”第16行第2列,它指向
cin>>宽度的开头最后提到的部分


这很简单。

读取错误是否值得<代码>应为“;”在“cin”之前
谢谢,我现在明白了,但是在我更正代码之后,它现在说⇒ 检查输出⇒ 您的标准输出与以前不同expected@programmerihop:你是如何调试它的?@programmerihop:再说一遍,你是如何调试它的?告诉我它说的话用处不大。此外,通常不赞成链接到外部站点或提供带有错误消息的图像。如果你真的需要的话,更新你原来的帖子,并明确地标记它。
cout << "Diamond width: +;"
//                       ^ no
cout << "Diamond width: +";
//                        ^ yes
./main.cpp: In function ‘int main()’:
./main.cpp:16:2: error: expected ‘;’ before ‘cin’
cin >> width; 
^