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

这两个函数有什么区别,为何前者能反回一个稳定的high值88,而后者返回一次正常的high值88然后再运行一次返回非正常的high值再次运行又能得到正常的值如此循环?

int arr[5]={80,88,86,87,82};
int high=0;
int i=0;
while(i<5)
{
    if(arr[i]>high)
    high=arr[i];
    i++;
}
return high;



int arr[5]={80,88,86,87,82};
int high=arr[0];
int i=0;
while(i<5)
{
    i++;
    if(arr[i]>high)
    high=arr[i];
}
return high;


正在回答

1 回答

if(arr[i]>high)

    high=arr[i];

之后i++直接确定88,之前的话需要返回一次

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

慕设计7231163 提问者

但是应该不会影响最后的返回结果啊,两个程序最后应该都是返回88才对的。但是前者确实可以每次运行都return 88,而后者运行起来却是返回一次88,再运行又不是return 88而是return 一个无规则的数,再运行一次又重新成功返回88,如此循环。你可以自己写一个试一下,多运行几次后面那个程序。
2017-10-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926317    人
  • 解答问题       20799    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

这两个函数有什么区别,为何前者能反回一个稳定的high值88,而后者返回一次正常的high值88然后再运行一次返回非正常的high值再次运行又能得到正常的值如此循环?

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