#include<stdio.h> #include<stdlib.h> #define MAXINE 100 int main(void) { int j,i; int n; int a[MAXINE][MAXINE]; printf("Enter n:"); scanf("%d",&n); a[0][0]=1;//第一个数置为 1 for(i=0;i<n;i++) { //注意 i 从 0 开始,第一个 for 循环将每行的第一位和最后一位都置 1 a[i][0]=a[i][i]=1; for(j=1;j<i;j++)//这个 for 循环是为每行的数值进行(除角标第一个和最后一个的)运算 a[i][j]=a[i-1][j-1]+a[i-1][j]; } for(i=0;i<n;i++) { for(j=0;j<=i;j++)//和上面的嵌套循坏对比发现,输出时包含了角标 0 和最后一个 printf("%d ",a[i][j]); printf(" "); } return 0; }