C语言输出杨辉三角

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:21:56
#include"stdio.h"
void main()
{int i,j,a[10][10];
for(i=0;i<=9;i++)
a[i][0]=1;
{for(i=0;i<=9;i++)
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j]; }
for(i=0;i<=9;i++)
{for(j=0;j<=i;j++)
printf("%d\t",a[i][j]);
printf("\n");}}

为什么输不出来呢,到底是错那里了

原因是a[i][j]=a[i-1][j-1]+a[i-1][j]; 前面的语句for(j=1;j<=i;j++) 中判断错了,j=i时应该让a[i][j]=1.
下面是对你的程序进行了一点修改:
#include"stdio.h"
void main()
{
int i,j,a[10][10];
for(i=0;i<=9;i++)
{
a[i][0]=1;
a[i][i]=1;
}

for(i=0;i<=9;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<=9;i++)
{
for(j=0;j<=i;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}

亲爱的同学,我看了你的代码,好像没有错误,我用我的VC++编译了一下,居然通过了,但是很可惜,输出的东西不是杨辉三角!很遗憾

楼上的回答的很好了,唯一不足就是打印的时候屏幕上排列的问题。不过很容易解决