我已经编写了以下C++代码来显示自然数的金字塔
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"Enter Size:";
cin>>n;
for(i=n;i>=1;i--)
{
for (j=i;j>0;j--)
{
cout<<j;
}
cout<<endl;
}
return 0;
}
但如果我们输入n=3,则该代码显示
321
32
1
我想将其显示为
123
12
1
您必须更改j循环,它从i变为0,您需要将它从1变为1+1,将它更改为this,它应该可以工作:
for (j=1;j<i+1;j++)
简单地反转第二个循环。
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"Enter Size:";
cin>>n;
for(i=n;i>=1;i--)
{
for (j=1;j<=i;j++) {cout << j << 't';}
cout<<endl;
}
}
注意:t
选项卡只是为了美观,正如您在循环达到超过1位数的数字时看到的那样:
Enter Size:10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
使用CCD_ 2可以获得相同的结果。
另请参见"为什么是";使用命名空间std"被认为是不好的做法?正确压痕的重要性
如果您想显示如下:123121
使用
cout<<"Enter Size:";
cin>>n;
for(i=1;i<=n;i++)
{
for (j=i;j<=n-1;j++)
{
cout<<j<<endl;
}
cout<<endl;
我把你的案例从头到尾展示出来。