【例】生成杨辉三角的前10行并存放到二维数组中,然后输出杨三角。
杨辉三角是按照如下规律排列的数据:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
......
【思路分析】首先通过观察可以知道,杨辉三角的第n行共有n个整数,因此如果要存放前10行的杨辉三角,需要定义一个10行10列的二维数组,例如取名为yh。
生成杨辉三角所有数据的过程实际是向二维数组中填写整数的过程。可以很容易发现
程序中需要填写的数组元素yh[i][j]的下标满足j<=i,即只需要填写二维数组左下方这一半的数据。接着分析填入数据的规律可以发现当列下标j等于0或i时,yh[i][j]需要填写1;其他情况下,yh[i][j]是yh[i-1][j-1]与yh[i-1][j]的和。
【参考代码】:
//生成杨辉三角的前10行并存放到二维数组中,然后输出杨三角。
#include<stdio.h>
#define N 10
int main()
{
int yh[][];
int i,j;
//下面的双层循环填写杨辉三角
for(i=;i<N;i++)
{
for(j=;j<=i;j++)
{
if(i==j||j==)
yh[i][j]=;
else
yh[i][j]=yh[i-1][j-1]+yh[i-1][j];
}
}
//下面输出杨辉三角
for(i=;i<N;i++)
{
for(j=;j<=i;j++)
{
printf("%4d ",yh[i][j]);
}
printf("\n");
}
return ;
}
【程序结果】: