P165 6.输出以下的杨辉三角形(要求输出10行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1……
由图可知(解题关键)
①第一列(j=0)和对角线(a[i][i])的值都为1
②从第三行开始,除了对角线和第一列的值外,所有的值=头顶上两个数值之和
也就是a[i][j]=a[i - 1][j - 1] + a[i - 1][j];
#include<stdio.h>
int main() {
int a[10][10];
int i = 0, j = 0;
//先给第一列(j=0)和对角线的数据赋值(都为1)
for (i = 0; i < 10; i++) {
a[i][i] = 1;
a[i][0] = 1;
}
//再从第三行开始赋值
for (i = 2; i < 10; i++) {
for (j = 1; j <= i - 1; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
//输出
for (i = 0; i < 10; i++) {
for (j = 0; j <= i; j++) {
printf("%6d", a[i][j]);
}
printf("\n");
}
return 0;
}
运行结果: