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

请问在这个函数中,为什么 index = i; 要放在循环的if里面不可以放到外面去,然而 arr[index]却写在外面呢

void replaceMax(int arr[],int value)
{
    int max = arr[0];
    int index = 0;
    int i;
    for(i=1;i<5;i++)
    {
        if(arr[i]>max)
        {
            max = arr[i];   //将数组中较大的数赋值给max
            index = i;  //记录当前索引
        }               
    } 
    arr[index] = value;
}

正在回答

1 回答

index = i将当前符合if条件的数值的下标赋给index,如果把index = i;表达式放在if的外面,index等于每次循环i加一的值,不符合条件。

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

慕哥0928960 提问者

就是说只是得到的值有问题,这样写其实也可以的嘛?
2017-12-09 回复 有任何疑惑可以回复我~
#2

慕哥0928960 提问者

逻辑上也可以,只是取值出现了问题
2017-12-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问在这个函数中,为什么 index = i; 要放在循环的if里面不可以放到外面去,然而 arr[index]却写在外面呢

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