请问这两段代码差距在哪里?

#include<stdio.h>#defineN3#defineM5intmain(){inta[N][M],i,j,max;for(i=0;i<N;i++){max=... #include<stdio.h>
#define N 3
#define M 5
int main()
{
int a[N][M],i,j,max;
for(i=0;i<N;i++)
{
max=a[i][0];
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
if(max<a[i][j])
max=a[i][j];
printf("%d\n",max);
}
}
---------------------------------------------------------------------------------------------------
#include<stdio.h>
#define M 3
#define N 5
int main()
{
int a[M][N],i,j,max;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<M;i++) {
max=a[i][0];
for(j=0;j<N;j++)
if(max<a[i][j])
max=a[i][j];
printf("%d",max);
}
}
展开
 我来答
guifang0923
2013-12-01 · TA获得超过371个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:359万
展开全部

第一段代码是错的:

#include<stdio.h>
#define N 3
#define M 5
int main()
{
int a[N][M],i,j,max;
for(i=0;i<N;i++)
{
max=a[i][0];//这时候a[i][0]还没有读入数据,一般就是一个很大的随机数,因此后面得到的最大值就不是你输入的最大值了
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
if(max<a[i][j])
max=a[i][j];
printf("%d\n",max);
}
}
更多追问追答
追问
好吧,第一段是我的,要怎么改呢?
追答

可用最小的int设置为初值:

#include<stdio.h>
#define N 3
#define M 5
int main()
{
    int a[N][M],i,j,max;
    for(i=0;i<N;i++)
    {
        max=0x80000000;//这个是最小的int,值为-2^31
        for(j=0;j<M;j++){//同时需要用括号把这段代码括起来
        scanf("%d",&a[i][j]);
        if(max<a[i][j])
        max=a[i][j];
}
        printf("%d\n",max);
    }
}
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式