在了解嵌套for循环的工作方式上,我编写了一个程序,它接受输入并显示金字塔,直到输入值如下:
1
22
333
4444
它只显示金字塔的高度,但它没有在第二个for循环中显示书面部分。
这是代码(修改后但尚未要求的结果)
#include <iostream>
using namespace std;
int main(void)
{
int num;
cout << "Enter the number of pyramid" << endl ;
cin >> num ;
for (int i = 0; i < num ; i++)
{
int max;
for (int j = 0 ; j <= max ; j++)
{
cout << j ;
}
cout << endl ;
max++ ;
}
system("PAUSE");
return 0;
}
答案 0 :(得分:3)
#include <iostream>
using namespace std;
int main(void)
{
int num ;
cout << "Enter the number of pyramid" << endl ;
cin >> num ;
for (int i = 0; i < num ; i++)
{
int max = i +1; //change 1
for (int j = 0 ; j < max ; j++)
{
cout << max; //change 2
}
cout << endl ;
//max++ ; //change 3
}
system("PAUSE") ;
return 0;
}
答案 1 :(得分:2)
您应该将max初始化为0。
int max = 0;
另外还有两个错误。
int max ;
应该在i的for循环之前声明。 (否则max始终定义为0)
在内循环打印i中,而不是j。
答案 2 :(得分:1)
首先,请尝试在代码中使用适当的结构:
#include <iostream>
using namespace std;
int main(void)
{
int num;
cout << "Enter the number of pyramid" << endl;
cin >> num;
for(int i = 0; i < num; i++)
{
int max;
for(int j = 0; j <= max; j++)
{
cout << j;
}
cout << endl;
max++;
}
system("PAUSE");
return 0;
}
你的错误:
将int max;
更改为int max = 0;
您不能将1添加到不存在的值。
答案 3 :(得分:1)
正如其他答案中所述,您的最大计数器未初始化。此外,您并不真正需要它,因为您已经i
执行相同的任务:
for (int i = 1; i <= num; i++)
{
for (int j = 0; j < i; j++)
{
cout << i;
}
cout << endl;
}
答案 4 :(得分:0)
除非你真的想打印像0 01 012 0123这样的东西,否则这就是你要找的代码:
for (int i = 1; i <= num; i++)
{
for (int j = 0; j < i; j++)
cout << i;
cout << endl;
}
答案 5 :(得分:0)
max未设置为初始值。
它声明了第一个循环,然后在第二个循环中使用。