标题:
为什么运行C语言二维数组出来的值不对(详看贴内容)
[打印本页]
作者:
WGL88
时间:
2019-7-11 16:17
标题:
为什么运行C语言二维数组出来的值不对(详看贴内容)
各位师兄,有个问题请教下,我用DEV-C++编译器编译如下一段源代码,为什么得到的结果行=3,列=4,正确的结果应该是行=2,列=3,因为有个a[0][0]为第一位。
#include<stdio.h>
void main()
{
int i,j,a[3][4],row,col,max; //定义参数
for(i=0;i<3;i++)//行循环
{
for(j=0;j<4;j++)//列循环
{
scanf("%d",&a[i][j]);//输入12个整数
}
}
max = a[0][0];//设定a[0][0]为最大值
row = 0;//行为0
col = 0;//列为0
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j] > max)
{
max = a[i][j];
row = i;
col = j;
}
}
}
printf("max=%d,行=%d,列=%d",max,i,j);
}
复制代码
QQ截图20190711161706.png
(10.46 KB, 下载次数: 39)
下载附件
2019-7-11 16:15 上传
作者:
尹子归来
时间:
2019-7-12 08:35
因为退出for循环最后是执行了一步表达式三即i++;这时候i=3了,判断否出来,此时i就是为3 的
作者:
f556
时间:
2019-7-12 09:20
2楼正解,for(i=0;i<3;i++)不执行for时i是=3的。
作者:
haohaoxiansheng
时间:
2019-7-12 09:27
是的,问题就出在这里,for(i=0;i<3;i++)不执行for时i是=3的。
作者:
WGL88
时间:
2019-7-16 11:29
那程序编写问题处在哪?如何改正呢?
作者:
db895166315
时间:
2019-7-17 08:53
考虑一下for循环的特点,既然弹出循环的时候,i=3,j=4,你可以令row=i-1,col=j-1.即可输出正确结果。
作者:
白字儿先生
时间:
2019-7-17 09:57
2楼正解,for(i=0;i<3;i++)不执行for时i是=3的
作者:
xujing
时间:
2019-7-17 17:08
二楼正解
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1