如果要比较保存最大值不是应该比较五次吗,for(i=1,i<5,i++),这不是只比较了四次吗,第一个下标是0没比较呀

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

慕桂英3245725

2019-01-15 16:45

for(i=1,i<5,i++)

如果在这里比较,0下标的元素10没有参加比较吧

写回答 关注

3回答

  • 白腿小隼熊猫鸟
    2019-02-22 11:09:40

    replaceMax()函数里,第一句已经定义了「int max = arr[0];」,也就是把数组的第一个元素(下标为0)赋值给了变量max了啊,后面的循环和判断语句里,从不从数组的下标为0的元素开始都可以,从0开始判断5次和从1开始判断4次的结果都是一样的,因为arr[0]肯定是不会大于它自己的,所以就算从0开始判断,那一次判断条件也是不成立,也不可能执行if内部的代码块,因此为了条理清晰、代码直接、效率优先,就没有必要从下标0开始,而直接从下标1开始。再罗嗦一句就是,从下标0开始循环,也不会错,只不过呢会给人印象是写代码的人没有预见到代码的运行情况,思路不清晰。

  • _黎先生
    2019-01-21 10:57:00

    同问!!!  但是如果第一个数是最大的呢? 比如  int arr1[] = {41,10,3,12,22};  那他的判断语句就一直都不成立啦?

    if(arr[i]>max)                      



    慕神8379...

    那就不用判断了啊,直接跳过然后输出就好

    2019-02-09 15:31:17

    共 1 条回复 >

  • 慕桂英3245725
    2019-01-15 16:47:37

    好吧,上面的mex已经调用了0下标了

C语言入门

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

926206 学习 · 20797 问题

查看课程

相似问题