繁体   English   中英

C ++作业:我不断收到错误

[英]C++ Homework: I keep getting an error

问题是:

编写一个程序,该程序读取一个整数,并使用星号显示彼此相邻的实心和空心正方形。

这是修改后的源代码

#include <iostream>
#include <cstdlib>
void printTop (int a);
int main() {
int num = 1;
cout << "Please, Enter a Number: " ;
cin >> num;
while (num >= 1) {
    printTop (num);
    for (int w = 0; w < num-2; w++) {
        for (int i = 0; i < num; i++) {
            cout << "*";
        }
        cout << " *";
        for (int i = 0; i < num-2; i++) {
            cout << "*\n";
        }
        printTop (num);
        cin >> num;
    }
    return 0;
 }
   void printTop (int a) ;
 {

    for (int i = 0; i < a*2; i++)
    {
        cout << "*";
        if (i == a-1) {
            cout << " " ; 
        }
    }
    cout << "\n" ;
}

您必须在main方法上方声明printTop()。 C ++编译器期望方法被向前声明( https://en.wikipedia.org/wiki/Forward_declaration )。

与Java和其他一些语言不同,C ++不允许在声明方法之前调用它们。

您可以在int main(int argc, char* argv[])方法之前放置以下声明

void PrintTop(int a);

但是,您不需要将函数的定义放在main之前。 声明就足够了。

代码中的其他一些问题: for (int w = 0; w < num-2; i++)应该替换为for (int w = 0; w < num-2; w++)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM