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

为啥将replaceMax函数for循环中从i=1开始改为从i=0开始答案就不正确了?

void replaceMax(int arr[], int value)

{

    int i;

    int max = arr[0];

    int index = 0;

    for(i=0; arr[i]>max; i++)

    {

        max=arr[i];

        index = i;   

    }

    arr[index] = value;

}

我计算的答案为1,41,3,12,22.


正在回答

2 回答

前一步规定max=arr[0],这时候再让i=0,就是arr[0]>max,即arr[0]>arr[0],不符合条件,跳出循环,然后index依然是0,即arr[index]=value这一步得出arr[0]=value=1,第一个数替换为1

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

慕标0917154

有道理,但是你看看我的,纳了闷了,第一个数并没有替换
2016-02-29 回复 有任何疑惑可以回复我~
#2

宝慕林7217635 提问者

嗯,是这样的我明白了谢谢!
2016-03-02 回复 有任何疑惑可以回复我~

我改了,还是对的,可能是你其他地方的问题http://img1.sycdn.imooc.com//56d445490001958b08150480.jpg

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

举报

0/150
提交
取消

为啥将replaceMax函数for循环中从i=1开始改为从i=0开始答案就不正确了?

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