打印出以下的杨辉三角(要求打印出十行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
......
一、分析规律:
1、每一行的第一列均为1;
2、对角线上的数字也均为1;
3、除每一行第一列和对角线上的数字外,其余数字均等于其上一行同列数字与其上一行前一列数字之和。
二、大概实现过程:
1、定义i,j,a[11][11]均为基本整型;
2、第一个for循环中变量i的范围为1~10,循环体中语句a[i][i]将对角线元素置1,语句a[i][1]=1将每行中的第一列置1;
3、用两个for循环实现除对角线和每行第一个元素外其他元素的赋值过程,即a[i][j]=a[i-1][j-1]+a[i-1][j];
4、再使用for循环的嵌套将数组a中的所有元素输出。
程序代码如下:
#include
int main()
{
int i, j, a[11][11];
for (i = 1; i < 11; i++)
{
a[i][i] = 1;
a[i][1] = 1;
}
for (i = 3; i < 11;i++)
for (j = 2; j <= i - 1; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
for (i = 1; i < 11; i++)
{
for (j = 1; j <= i; j++)
printf("%4d", a[i][j]);
printf("\n");
}
return 0;
}