问题是:
编写一个读取整数的程序,并使用星号显示一个彼此相邻的填充空心方块。
这是经过修改的源代码
#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" ;
}
答案 0 :(得分:2)
您必须在main方法上方声明printTop()。 C ++编译器期望方法被前向声明(https://en.wikipedia.org/wiki/Forward_declaration)。
答案 1 :(得分:1)
与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++)
。