#include <stdio.h>
#define N 7 //以7行7列为例
int main()
{
int a[N][N]; //N行N列的杨辉三角
int i,j;for(i=0;i<N;i++) //先赋值两边
{
a[i][0]=1;
a[i][i]=1;
}for(i=2;i<N;i++) // 计算中间的数值
{
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}for(i=0;i<N;i++) // 输出部分
{
for(j=0;j<i+1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
运行如下:
特此说明:
a[i][j]=a[i-1][j-1]+a[i-1][j];该语句用于求中间值
表示:中间值等于上一行前一列的数加上上一行同一列的数
例图中 6(a[4][2]位置)等于上行两个3(前a[3][1],后a[3][2])相加
即表示为:a[4][2]=a[3][1]+a[3][2]
相当于: a[4][2]=a[4-1][2-1]+a[4-1][2]
等价于: a[i][j]=a[i-1][j-1]+a[i-1][j]