之所以想起来做一个输出杨辉三角的代码文章,是因为在我的期末考试中,最后一个程序设计大题就是输出杨辉三角的前十行。
这个问题并不难,但是我当时写这个题目的忘记了还要输出空格,结果我的代码运行出来的结果是这样的:
有点磕惨~~
实际上,输出杨辉三角最简单的方法是利用二维数组,尤其是,一定要知道的是:除了最外围的数字以外,杨辉三角中的数字都可以用它上一行同位置的数字与上一行且列位置往前移动一位的数字相加得到,也就是 arr[a][b]=arr[a-1][b-1]+arr[a-1][b];
其余的部分,就用选择语句就可以了。当一个数字是一行的第一个数字或者最后一个数字时,它的值是1。
代码如下:
#include<stdio.h>
int main()
{
int a=1,b=1;
int arr[10][10]={0};
for(a=0;a<10;a++)
{
b=10-a;
while(b--)
{
printf(" ");
}
arr[a][0]=1;
for(b=0;b<=a;b++)
{
if(a==b)
{
arr[a][b]=1;
}
if(a>1&&b>=1)
{
arr[a][b]=arr[a-1][b-1]+arr[a-1][b];
}
printf("%-3d ",arr[a][b]);
}
printf("\n");
}
return 0;
}
运行结果如下:
所以,希望以后考试的时候不要再犯这样低级的问题了。各位看官也一样!