问答详情
源自:6-4 数组作为函数参数

为啥将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.


提问者:宝慕林7217635 2016-02-13 19:49

个回答

  • 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

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

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