[英]Trying to do this homework assignment but I keep getting a compilation error
[英]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.