#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
*/