一时纠结如何控制循环变量,我还是上网搜搜算了。查过相关信息大都是用数组保存数据。
网上的代码都很简洁,我看到后都不想再打代码了,有点想直接从网上copy一份下来的冲动。
不过,n<=30是否有点大呢?比划了一下,一行是装不了如此长度的数据的,而且当n很大的时候,保留空格会成一个问题,影响排版,更何况题目似乎每个数之间只留一个空格,这样超过三位数的是否会影响排版呢,可以打印n=10的时候试试。
#include "stdio.h" void main() { int i,j,k,n; scanf("%d",&n); int a[30][30]; for(i=0;i<n;i++) { for(k=0;k<(n+4)/2-i;k++)printf(" "); for(j=0;j<i+1;j++) { if(j==0||i==j) a[i][j]=1; else a[i][j]=a[i-1][j-1]+a[i-1][j]; printf("%4d",a[i][j]); printf(" "); if(i==j) printf("\n"); } } }