打印杨辉三角形中出现的问题

napoleonpan 2003-07-22 12:09:00
#include<iostream.h>
#include<iomanip.h>
#define N 10
void main(void)
{int a[N][N]={{1}};
int i,j;
for(i=0;i<=N-1;i++)
a[i][0]=1;
for(i=0;i<=N-2;i++)
{for(j=0;j<=i;j++)
{a[i+1][j+1]=a[i][j]+a[i][j+1];}
}
for(i=0;i<=N-1;i++,cout<<endl)
{for(j=0;j<=i;j++)
cout<<setw(4)<<a[i][j];
}
}

按照此程序打印没有问题
但是如果把最后一个循环换成:
for(i=0;i<=N-1;i++)
{for(j=0;j<=i;j++)
cout<<setw(4)<<a[i][j];
}
cout<<endl;
}

则打印出来的行数列数均不正确
我很奇怪,这和上面的原理不是一样的吗
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
NOV 2003-07-23
  • 打赏
  • 举报
回复
机器没编译器呀,上面的都是我自己看着改的没试过,别打我。
napoleonpan 2003-07-22
  • 打赏
  • 举报
回复
我知道自己错在哪里了,呵呵
不过按照前面几位兄弟的方法调试,还是出现了问题
General Protection Exception 0x6E 4F:0x889D

程序如下:
#include<iostream.h>
#include<iomanip.h>
#define N 10
void main(void)
{int a[N][N]={{1}};
int i,j;
for(i=0;i<=N-1;i++)
a[i][0]=1;
for(i=0;i<=N-2;i++)
{for(j=0;j<=i;j++)
{a[i+1][j+1]=a[i][j]+a[i][j+1];}
}
for(i=0;i<=N-1;i++)
{for(j=0;j<=i;j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
}
NOV 2003-07-22
  • 打赏
  • 举报
回复
for(i=0;i<=N-1;i++)
{for(j=0;j<=i;j++)
cout<<setw(4)<<a[i][j];
}
cout<<endl; //你仔细看清楚吧,这句已经不是在for循环里的啦。

} //这不是for循环的花号而是程序结束的花号。
可以改为:
for(i=0;i<=N-1;i++)
{for(j=0;j<=i;j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
}
NOV 2003-07-22
  • 打赏
  • 举报
回复
for(i=0;i<=N-1;i++)
{for(j=0;j<=i;j++)
cout<<setw(4)<<a[i][j];
}
cout<<endl; //你仔细看清楚吧,这句已经不是在for循环里的啦。

}
ZhangYv 2003-07-22
  • 打赏
  • 举报
回复
for(i=0;i<=N-1;i++)
for(j=0;j<=i;j++){
cout<<setw(4)<<a[i][j];

cout<<endl;
}
}
hslyliu 2003-07-22
  • 打赏
  • 举报
回复
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 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
楼上的,用你的CODE编译的结果如上,VC6.0,WIN2000PF

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧