#include <stdio.h>
//本程序演示了用二维数组来输出一个9行9列的杨辉三角
int main(void)
{
     int n=9;
     int yhsj[9][9];
     int i,j;
     /////为二维数组赋初值
     for(i=0;i<n;i++)
         for(j=0;j<n;j++)
         {
             yhsj[i][j]=0;
         }
     //以下用杨辉三角公式填充二维数组
     yhsj[0][0]=1;
     for(i=1;i<n;i++)
         for(j=0;j<=i;j++)
         {
             if(j==0) yhsj[i][j]=yhsj[i-1][j]; else  //处理数组第一列
                 if(j==n-1) yhsj[i][j]=yhsj[i-1][j-1];else  //处理数组最后一列
                      yhsj[i][j]=yhsj[i-1][j-1]+yhsj[i-1][j];
         }
     //以下用于屏幕输出二维数组
     for(i=0;i<n;i++)
     {
         for(j=0;j<n;j++)
         {
             if(yhsj[i][j]>0)
             {
                 printf("%4.0d",yhsj[i][j]);
             }
         }
         for(j=0;j<n;j++)//我只是将这里多加了一个反序输出
         {
             if(yhsj[n-1-i][n-1-j]>1||n-1-j==0&&n-1-i!=0)
             {
                 printf("%4.0d",yhsj[n-1-i][n-1-j]);
             }
         }
       
         printf("\n");
     }
     return 0;
}
/*一下是效果图
   1   8  28  56  70  56  28   8   1
   1   1   7  21  35  35  21   7   1
   1   2   1   6  15  20  15   6   1
   1   3   3   1   5  10  10   5   1
   1   4   6   4   1   4   6   4   1
   1   5  10  10   5   1   3   3   1
   1   6  15  20  15   6   1   2   1
   1   7  21  35  35  21   7   1   1
   1   8  28  56  70  56  28   8   1
*/