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

来源:6-4 数组作为函数参数

宝慕林7217635

2016-02-13 19:49

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回答

  • akavice
    2016-02-16 13:33:53
    已采纳

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

    宝慕林721...

    嗯,是这样的我明白了谢谢!

    2016-03-02 20:27:06

    共 2 条回复 >

  • 慕标0917154
    2016-02-29 21:19:14

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

C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题