请帮助我,我使用的是16号代码块,我不知道为什么这段代码不打印正方形,只是一个正方形! 另一件事是我如何改进这段代码? 我还在学习请不要生我的气 非常感谢你的时间
#include <iostream>
using namespace std;
int main () {
char a = 'a', d = ' ';
int b = 0, c = 0;
while (c < 5) {
cout << a;
c = c + 1;
}
cout << endl;
c = 0;
while (c < 3) {
cout << a;
while (b < 3) {
cout << d;
b = b + 1;
}
cout << a << endl;
c = c + 1;
}
c = 0;
while (c < 5) {
cout << a;
c = c + 1;
}
cout << endl;
return 0;
}
答案 0 :(得分:2)
您忘了将b
重新初始化为b
。
使用0
会更容易阅读:
for
答案 1 :(得分:0)
问题是每次循环外循环时都不会重置sender
的值。因此,在正方形的第二行(第一行有空格),它工作得很好。但是,在第三行,当您进入内部while循环时,b
仍然等于上一次循环中的3。
如果我也可以同时提出建议,请对变量进行有意义的命名,错误将更加明显。我建议使用变量b
和row
而不是column
和b
。有时您需要的只是稍微更清晰的变量名称,而且bug也很突出。