C语言数组问题 有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和例号

voidmain{inti,jrow=0,colum=0,max;inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a... void main
{
int i,j row=0,colum=0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{
max=a[i][j];
row=i;
colum=j;
}
printf("max=%d,row=%d,colum=%d\n",max,row,colum);
}
这书书上的例题 我有几个搞不懂的地方
一、max=a[0][0]这里是将第0行0例的元素赋给max吗? 也就是将1赋给max?
二、if(a[i][j]>max)此时max又是多少?1?应该不是1吧
展开
 我来答
百度网友53a47f9
2012-02-25 · TA获得超过401个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:351万
展开全部
执行max=a[0][0]后max=1
if(a[i][j]>max)此时max值不能确定,因为前面有两个循环嵌套,执行完
if(a[i][j]>max) //此处i j值不确定,不知道max是否比a[i][j]大
{
max=a[i][j]; //此处i j值不确定,max可能会变化
row=i;
colum=j;
}
后会执行 j++ ,如果此时 j<=3 则继续执行 if 语句,如果 j>3 则执行 i++;j=0;
然后再次执行 if(a[i][j]>max) 语句 ,此时的i、j都不能确定,此前max的值有可能变化了
QQ469985793
2012-02-25 · TA获得超过153个赞
知道答主
回答量:126
采纳率:100%
帮助的人:102万
展开全部
代码的意思是 首先 需要一个辅助变量 max 保存最大值对吧 ?

然后 给max赋值a[][]数组的第一个元素 , 之后遍历其他剩下的元素,比max大,就保存值在max中,

那遍历完一次后,max就是数组a[][]中最大的值了.
if(a[i][j]>max)
{
max=a[i][j];//刷新max值
row=i;//保存行号
colum=j;//保存列号
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lt_xiaoD
2012-02-25
知道答主
回答量:8
采纳率:0%
帮助的人:4万
展开全部
第一个问题:恩 是的 只是给max赋一个初值而已
第二个问题:第一次进入循环是max就是第一个值1,当a[i][j]位置大于max值时将max值换成a[i][j],同时得到row和colum,当不符合a[i][j]>max时if语句就不会执行,知道数组循环结束,得到最终max的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5120c2ff9
2012-02-25
知道答主
回答量:37
采纳率:0%
帮助的人:23.2万
展开全部
Max保存最大值、好果下一个比Max大,则替换max的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhl428453
2012-02-26
知道答主
回答量:22
采纳率:0%
帮助的人:7.4万
展开全部
嗯 是的,就是把1附给a[0][0] if(a[i][j]>max)就将a[i][j]附给a[0][0] ,程序不是很清楚吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式