当前位置: 代码迷 >> C语言 >> 一个小问题
  详细解决方案

一个小问题

热度:101   发布时间:2005-07-25 19:57:00.0
一个小问题
以下一个程序为什么不加绿色的语句结果会是死循环呀? main() { int i,j,a[11][11]; for( i=1;i<=11;i++) for( j=1;j<=i;j++) { if(j==1||j==i) a[i][j]=1; else a[i][j]=a[i-1][j-1]+a[i-1][j]; } for( i=1;i<=10;i++) { for( j=1;j<=i;j++) printf( "%d,",a[i][j]); printf("\n"); } }[
----------------解决方案--------------------------------------------------------
以下是引用powermike在2005-7-25 19:57:07的发言: 以下一个程序为什么不加绿色的语句结果会是死循环呀? main() { int i,j,a[11][11]; for( i=1;i<=11;i++) for( j=1;j<=i;j++) { if(j==1||j==i) a[i][j]=1; else a[i][j]=a[i-1][j-1]+a[i-1][j]; } for( i=1;i<=10;i++) { for( j=1;j<=i;j++) printf( "%d,",a[i][j]); printf("\n"); } }[ <---这个是什么?

----------------解决方案--------------------------------------------------------
那个写错了,把那个符号去掉
----------------解决方案--------------------------------------------------------
这个程序不是出错在绿色的那句
而是出错在数组的边界的判断

不知道你是不是故意的,要知道,数组是从0开始计算的
----------------解决方案--------------------------------------------------------
a[11][11]的边界是0-10,for语句的判断条件只能是i&lt;=10或者i&lt;11,j的判断条件也是一样。
----------------解决方案--------------------------------------------------------
  相关解决方案