当前位置: 代码迷 >> C语言 >> 为什么这样错了,c的问题
  详细解决方案

为什么这样错了,c的问题

热度:81   发布时间:2006-05-03 01:42:00.0

楼主的程序的确是当i+j为偶数就不输出了,你看你输入123456789
相当于a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
输出的时候只输出a[0][1],a[1][0],a[1][2],a[2][1]所以是2,4,6,8


----------------解决方案--------------------------------------------------------
回复:(论坛)for(i=0;i<=2;i++)for(j=0;j<=2;...
以下是引用论坛在2006-5-2 20:45:00的发言:

for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);


和你输入有关系,看你输入什么了,你输入1万可能输出1万,你没输入怎么可能输出正确的值,那输出的都是原来内存中的垃圾值

特别赞成这位的观点,输入决定输出嘛。“种瓜得瓜、种豆得豆”哦。

实际上楼主那个程序是抑制“行标+列标=偶数”的那部分元素的输出。
----------------解决方案--------------------------------------------------------
九楼的大哥用的语言是C++啊,
可我们讨论的都是C
----------------解决方案--------------------------------------------------------

有道理,条件判断明朗化表示最好,向国际化标准看齐,这样程序更易读懂!


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

同意11楼的,赋值是从a[0][0]开始的,i+j是偶数不输出,不是不输出偶数!


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