#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.
----------------解决方案--------------------------------------------------------