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

为啥出来个32765

#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 a[],int count)

{

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

    int maxNum=a[0];

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

{

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

if(maxNum<a[i])

{

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

maxNum=a[i];

}

}

return maxNum;

}


int main(void)

{

    //定义int数组并初始化

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

    

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

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

    

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

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

return 0;

}


正在回答

4 回答

numArr数组的长度是3,但是数组中元素是从0开始计算,也就是numArr[0],numArr[1],numArr[2]三个元素,numArr[3]是不存在的,出现错误,而且在将数组作为参数传入函数时,只需写明数组名即可,中括号中带有数字时,表示数组中的某个元素,而不代表数组本身。

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

32765

 这个数是因为在数值numArr中,长度为3,但是索引值只到了2,使用numArr[3]的时候,程序会自动寻找一个值作为numArr[3]的数值,实质上 最后那条语句并没有实现在数组中找到最大值,而是实现的numArr[3]和 3 两个整数的大小比较。

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

cout << getMax(numArr[3],3)<< endl; 这句需要修改, -->cout<<getMax(numArr,3);

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

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

numArr[3]:表示第4个数组元素,改为numArr

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

慕雪3415608

那后面那个3表示什么呢?
2020-02-09 回复 有任何疑惑可以回复我~
#2

qq_L_Cc_3 回复 慕雪3415608

应该是数组长度吧 我也是小白 找问题来了
2020-02-23 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为啥出来个32765

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