在利用数组处理批量数据这一章节中,我已经初步熟悉掌握了如何定义引用一维二维多维以及字符数组,那么接下来就应该结合之前所学利用数组解决一些较难使用简单的数据类型完成的问题喽,接下来我将引用以下例题说明一下如何运用数组来实现批量数据的处理!
那么今天我的题目就是输出以下的杨辉三角形(要求输出10行).
#include<stdio.h>
#define N 10
int main()
{
int i,j,a[N][N];//定义数组为10行10列
for(i=0;i<N;i++)
{
a[i][i]=1; //使对角线元素的值为1
a[i][0]=1; //使第一列元素的值为1
}
for(i=2;i<N;i++)
/*从第3行开始处理,除上文指出的第一个数和最后一个数为1以外其余各数是上一行同列和前一列两个数之和*/
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
printf("%6d",a[i][j]); //输出各元素的值
printf("\n");
}
printf("\n");
return 0;
}
分析:
1.首先拿到这个题目我们可以想象到有很多数据需要处理,那么第一个想到的就是采用数组批量处理。
2.明确数据的维度在此例中只需要使用二维数组即可,10行10列。
3.寻找规律,在高中阶段我们就已经明白杨辉三角形是(a+b)^n张开后各项的系数,因此掌握了此规律就可以开始构建代码的大致框架了,分三步即可实现要求。
注意:数组a[N][N]的下标是从a[0]a[1]a[2]…a[N-2]a[N-1]的,不存在a[N]这一元素!