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

为啥输出结果是6 6

#include <iostream>

using namespace std;

/**

  *函数功能:返回a和b的最大值

  *a和b是两个整数

  */

int getMax(int a, int b)

{

    return a > b ? a : b;

}


/**

  * 函数功能:返回数组中的最大值

  * arr:整型数组

  * count:数组长度

  * 该函数是对上面函数的重载

  */

int getMax(int *arr,int count)

{

    //定义一个变量并获取数组的第一个元素

    int maxnum = arr[0];

for(int i = 1; i < count; i++)

{

        //比较变量与下一个元素的大小

if(maxnum<arrr[i])

{

            //如果数组中的元素比maxNum大,则获取数组中的值

maxnum=arr[i];

}

}

return maxnum;

}


int main(void)

{

    //定义int数组并初始化

int numArr[3] = {3, 8, 6};

    

    //自动调用i getMax(int a, int b)

cout << getMax(numArr[0],numArr[2] ) << endl;

    

    //自动调用返回数组中最大值的函数返回数组中的最大值

cout << getMax(numArr,3)<< endl;

return 0;

}


正在回答

3 回答

 "//比较变量与下一个元素的大小"这行代码下你arr写出arrr,并且你这样写结果应该是6,8才是啊,

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

那为啥我的是输出 8 6呢

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

笔墨遥仙

因为数组是从0开始索引的。 比如:arr[] = {7,6,9,10}; 里面又四个元素,它的长度就是4,但是它的角标却不是从1开始,而是从0开始。 所以得出:arr[0] = 7 , arr[1] = 6 , arr[2] = 9 ; arr[3] = 10
2017-09-07 回复 有任何疑惑可以回复我~
#2

青鬃 回复 笔墨遥仙

对哈!但我好奇的是 最大值不是只能是一个数?是因为arr【】有三个数 所以两两比较的?
2017-09-07 回复 有任何疑惑可以回复我~
#3

笔墨遥仙 回复 青鬃

上面的那段代码,getMax()这个函数是被重载了,电脑会根据的参数不同,从而调用相应的功能。 并且cout << getMax(numArr[0],numArr[2] ) << endl;是调用的第一个getMax(),这是两个相互比较 cout << getMax(numArr,3)<< endl;是调用第二个getMax(),这是整个数组进行循环比较
2017-09-08 回复 有任何疑惑可以回复我~
#4

青鬃 回复 笔墨遥仙

赞!明白了~\(≧▽≦)/~
2017-09-10 回复 有任何疑惑可以回复我~
查看1条回复

    //自动调用i getMax(int a, int b)

cout << getMax(numArr[0],numArr[2] ) << endl;

这里numArr[0]是指3,numArr[2]指6,所以最大值为6

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

青鬃

啊?那为啥我的是输出8 6 呢?不是很明白这个numArr[0]是指3,numArr[2],为什么不能是numArr[1]
2017-09-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

为啥输出结果是6 6

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