1.倒推法实现输出杨辉三角有半部分,代码如下:
- 1 #include<stdio.h> 2 int main() 3 { 4 int n,i,j,a[100]; 5 printf("请输入行数n:"); 6 scanf("%d",&n); 7 printf(" 1"); 8 printf("\n"); 9 a[1]=a[2]=1;10 printf("%3d%3d\n",a[1],a[2]);11 for(i=3;i<=n;i++)12 {13 a[1]=a[i]=1;14 for(j=i-1;j>1;j--)15 a[j]=a[j]+a[j-1];16 for(j=1;j<=i;j++)17 printf("%3d",a[j]);18 printf("\n");19 }20 return 0;21 }
运行结果:

2.实现输出杨辉三角全部,代码如下:
- 1 #include<stdio.h> 2 int main() 3 { 4 int a[10][21]; 5 int i,j; 6 for(i=0;i<10;i++) 7 for(j=0;j<21;j++) 8 a[i][j]=0; 9 a[0][10]=1;10 for(i=1;i<10;i++)11 for(j=10-i;j<10+i+1;j++)12 a[i][j]=a[i-1][j-1]+a[i-1][j+1];13 for(i=0;i<10;i++)14 {15 for(j=0;j<21;j++)16 if(a[i][j]==0)17 printf(" ");18 else{19 if(a[i][j]<10)20 {21 printf("%2d",a[i][j]);22 }23 else if(a[i][j]<100)24 {25 printf("%2d",a[i][j]);26 }27 else{28 printf("%d",a[i][j]);29 }30 }31 printf("\n");32 }33 printf("\n");34 return 0;35 }
运行结果:
