c语言:用数组输出杨辉三角的前n行。(0
#include <stdio.h>
int main()
{
int i,j,n,a[20][20];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a[i][1]=1;
a[1][i]=0;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%d ",a[i][j]);
}
}
return 0;
}
求大神指点。
C的下标从0开始的你的
a[i][j]=a[i-1][j-1]+a[i-1][j];
当i=1时
a[i-1]=a[0]没有初始化,结果当然是错的
另外你的输出对不对(没有分行)
在你程序基础上改的,参考
#include<stdio.h>
int main()
{
int i,j, n,a[20][20]={0};
scanf("%d",&n);
for(i=0; i<10; i++)
{
a[i][i]=1;
a[i][0]=1;
}
for(i=2; i<n; i++)
{
for(j=1; j<=i; 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("%d ",a[i][j]);
printf("
");
}
return 0;
}