利用C++如何编程数字金字塔

1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 如此类推
2024-12-31 17:31:03
推荐回答(5个)
回答1:

1、代码很简短,就是几层循环语句,依次换行输出数字。

2、例程:

#include

using namespace std;

int main()

{

 int n,i,j,k,m;

 cout<<"input number: ";

 cin>>n;//输入数字金字塔数目n

 for( i=0;i

 {   for(m=0;m

  for(j=i+1;j>0;--j) cout<

  for(k=1;k<=i;++k) cout<

  cout<

 }

}

回答2:

#include
using namespace std;
#define N 8 //金字塔的高度,可以修改
int a[N];
int main()
{
int i,j;
for(i=0;i a[i]=i+1;
for(i=0;i {
for(j=1;j<=(N-a[i]);j++)
cout<<" ";
for(j=N-a[i]+1;j<=N;j++)
cout< if(i>0)
{
for(j=2*a[i]-1;j>=a[i]+1;j--)
cout< }
cout< }
system("pause");
return 0;
}

可以啦。。。。。。
一定要加分哦。。。

回答3:

一楼上的当N>=10,是有问题的。

Code::Blocks GCC 下编译通过

#include
using namespace std;
#define N 13 //金字塔的高度,可以大於10到99之间,只要萤幕够,不会出现问题。应该不会大过100的吧,太大了,装不下的,呵呵
int a[N];
int main()
{
int i,j;
for(i=0;i a[i]=i+1;
for(i=0;i {
for(j=1;j<=(N-a[i]);j++)
cout<<" ";
for(j=N-a[i]+1;j<=N;j++)
if ((j-N+a[i])>=10)
cout< else cout< if(i>0)
{
for(j=2*a[i]-1;j>=a[i]+1;j--)
if ((j-a[i])>=10)
cout< else cout< }
cout< }
return 0;
}

回答4:

#include
#include
#define N 7
int main()
{
int i,j,k,m;
for(i=1;i<=N;i++)
{
for(j=1;j<=40-i;j++)
printf(" ");
for(j=1,k=1,m=1;j<=2*i-1;j++)
if (k<=i)
printf("%d",k++),m++;
else
printf("%d",--m-1);
printf("\n");
}
return 0;
}

回答5:

#include
#define N 5 //可以定义高度
int main(void)
{
int i,j;
for(i=1;i<=N;i++)
{for(j=1;j<=40-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
if(j<=i)
printf("%d",j);
else
printf("%d",i-j%i);
printf("\n");
}
return 0;
}