当前位置: 代码迷 >> C语言 >> 简单程序查错,指教
  详细解决方案

简单程序查错,指教

热度:343   发布时间:2007-02-01 15:46:51.0
#include <stdio.h>
#define N 10
void main()
{
int i, j,count=1;
int a[N][N];
for (i=1;i<N;i++)
{
a[i][i]=1;a[i][1]=1;
}
for (i=3;i<N;i++)
for (j=2;j<i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for (i=1;i<N;i++)
{
for (j=1;j<i;j++)
if(count++<=35)
printf("%3d",a[i][j]);
printf("\n");
}
}
红色部分也有错!!!!!!!!!!
----------------解决方案--------------------------------------------------------

什么错啊,能帮我改下吗,自己实在看不出


如果原程序运行结果是
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5
1 1 6 15 20 15 6 1 1 7 21 35 35 21 7



怎么可以改变,让他运行结果变成

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7
这个样子的

谢谢你的帮助啊


[此贴子已经被作者于2007-2-1 16:01:20编辑过]


----------------解决方案--------------------------------------------------------
#include <stdio.h>
#define N 10
void main()
{
int i, j,count=1;
int a[N][N];
for (i=1;i<N;i++)
{
a[i][i]=1;a[i][1]=1;
}
for (i=3;i<N-1;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=1;i<N-1;i++)
{
for (j=1;j<=i;j++)
if(count++<=35)
printf("%3d",a[i][j]);
printf("\n"); }

}

[此贴子已经被作者于2007-2-1 16:02:28编辑过]


----------------解决方案--------------------------------------------------------
[QUOTE]for (i=3;i<N-1;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=1;i<N-1;i++)[/QUOTE]

这段为什么把N改成了N-1呢???

[此贴子已经被作者于2007-2-1 21:37:38编辑过]


----------------解决方案--------------------------------------------------------

C中的数组都是从0开始记的,你定义N是10,实际上是0-9.


----------------解决方案--------------------------------------------------------
  相关解决方案