请C语言编程高手查一下错误的原因

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:21:57
#include <stdio.h>
main ()
{int a[11][11], i, j, n;
a[1][1]=1 a[2][1]=1; a[2][2]=1;
scanf("%d",&n);
for (i=3; i<=n; i++)
{a[i][1]=1;
for (j=2; j<=i-1; j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][i]=1;}
for(i=1; i<=n; i++)
{for(j=1; j<=i; j++)printf("%8d", a[i][j]);
printf("\n"); }
}

首先数组是从0开始计算的,也就是从a[0][0]开始,不是1
限制下n的范围,超出10就越界了,

#include <stdio.h>
main ()
{
int a[11][11], i, j, n;
a[1][1]=1;
a[2][1]=1;
a[2][2]=1;
scanf("%d",&n);
for (i=3; i<=n; i++)
{
a[i][1]=1;
for (j=2; j<=i-1; j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][i]=1;
}
for(i=1; i<=n; i++)
{
for(j=1; j<=i; j++)printf("%8d", a[i][j]);
printf("\n");
}

}
}
//我只是把你的代码理清楚使得编译能通过
至于这个程序最终运行的结果取决于你自己

#include <stdio.h>
main ()
{int a[11][11], i, j, n;
a[1][1]=1 ;a[2][1]=1; a[2][2]=1;
scanf("%d",&n);
for (i=3; i<=n; i++)
{a[i][1]=1;
for (j=2; j<=i-1; j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][i]=1;}
for(i=1; i<=n; i++)
{for(j=1; j<=i; j++)printf("%8d", a[i][j]);