为了账号安全,请及时绑定邮箱和手机立即绑定

那位高手看看这个何解???

#include <stdio.h>
int main()
{
 int i,max,a[]={10,5,20,31,4};
 max=a[0];
 for(i=0;i<5;i++)
 if(a[i]>max)
 max=a[i];
 printf("maxnum=%d\n",max);
 return 0;
}

为何运行结果只有31,没有20呢??

正在回答

8 回答

a【0】不是代表第一个数,这里定义的a【0】指的是一个随机数 。而不是你定义的数组里的数

0 回复 有任何疑惑可以回复我~

因为你没for语句后,没有加标号,编译时,默认只选择一句。相当于

for(i=0;i<5;i++)

 { if(a[i]>max)

   {max=a[i];}

}

 printf("maxnum=%d\n",max);

所以选出最大以后,再输出。

0 回复 有任何疑惑可以回复我~
#include <stdio.h>
int main()
{
 int i,max,a[]={10,5,20,31,4};
 max=a[0];
 for(i=0;i<5;i++)
 if(a[i]>max)
 {max=a[i];
 printf("maxnum=%d\n",max);
 }
 return 0; 
}

这样输出才是20 31.进行5次判断,大于一次就输出一次

1 回复 有任何疑惑可以回复我~

是从数组里面依次运行找最大的,然后输出最大的

0 回复 有任何疑惑可以回复我~

变量max在for语句里相对来说算静态类型变量。

0 回复 有任何疑惑可以回复我~

对啊对啊,选最大数滴

0 回复 有任何疑惑可以回复我~
#1

逆水中的鱼 提问者

不是只要大于a[0]就可以吗!答案为啥不是20,31呀?
2015-08-13 回复 有任何疑惑可以回复我~

为什么有20,这是选最大数的

0 回复 有任何疑惑可以回复我~

为什么有20,这是选最大数的

0 回复 有任何疑惑可以回复我~
#1

逆水中的鱼 提问者

不是只要大于a[0]就可以吗!答案为啥不是20,31呀?
2015-08-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

那位高手看看这个何解???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信