1 #include <stdio.h> 2 void main() 3 { 4 int i, j, k,t=0; /*定义二维数组a[i][j]*/ 5 int a[12][12]; /*控制打印的行数*/ 6 while(t<=0||t>=11){ 7 printf("输入打印行数:"); 8 scanf("%d",&t); 9 } 10 printf("%d行杨辉三角如下: ",t); 11 for(i=1;i<=t;i++) 12 a[i][1] = a[i][i] = 1; /*两边的数令为1,循环从1开始,a[i][1]为第一个数*/ 13 for(i=3;i<=t;i++) 14 for(j=2;j<=i-1;j++) 15 a[i][j]=a[i-1][j-1]+a[i-1][j]; /*除两边的数外其余都等于上两顶数之和*/ 16 for(i=1;i<=t;i++){ 17 for(k=1;k<=t-i;k++) 18 printf(" "); 19 for(j=1;j<=i;j++) 20 printf("%6d",a[i][j]); /*换行*/ 21 22 printf(" "); 23 } 24 printf(" "); 25 }
心得:我觉得做这道题首先得搞清楚什么是杨辉三角,因为老师提前在上课时给我们讲过,作业完成的也还可以。