题目要求:
输入n值,打印下列形状的金字塔,其中n代表金字塔的层数。有多组测试数据。
1
1 2 1
1 2 3 2 1
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;
int s[25][100],k;
while(scanf("%d",&n)!=EOF)
{
memset(s,0,sizeof(s));
for(i=0;i<n-1;i++)
{
for(j=n-1-i,k=1;j<n;j++)
{
s[j][i]=k++;
}
}
for(j=0,k=1;j<n;j++)
s[j][n-1]=k++;
for(i=n;i<2*n-1;i++)
{
for(j=i-(n-1),k=1;j<n;j++)
{
s[j][i]=k++;
}
}
for(j=0;j<n;j++)
{
for(i=0;i<n+j;i++)
{
if(s[j][i]==0)printf(" ");
else printf("%d",s[j][i]);
if(i<n+j-1)printf(" ");
}
printf("\n");
}
}
return 0;
}