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

最大值输出为什么显示为任意值

#include<iostream>
#include<stdlib.h>
using namespace std;

int getMaxOrMin(int*arr, int count, bool isMax)
{
	int temp = arr[0];
	isMax = true;	
	for(int i = 0;i<=count;i++)	
	{		
	    if(isMax)		
	    {			
	        if(temp < arr[i])			
	        {				
	            temp = arr[i];				
	        }			
	    }		
	    else		
	    {			
	        if(temp > arr[i])			
	        {				
	            temp = arr[i];				
	        }			
	    }	
	}	
	return temp;
}

int main(void)
{	
    int arr1[4]={3,6,2,5};	
    bool isMax = false;	
    cout << "求最大值请输入1,求最小值请输入0:"; 	
    cin >> isMax;	
    cout << getMaxOrMin(arr1,4,isMax) << endl;	
    system("pause");	
    return 0;
}


正在回答

3 回答

 for(int i = 0;i<=count;i++) 循环语句里面应该是i<count,而不是i<=count

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

为任意值是因为你的for循环中i的值为4的时候数组越界了,从而导致你获得一个没有规律的值。

另外,在这个代码的第八行中,应去掉isMax = true;不然函数一直是取最大值

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

第8行的isMax = true;去掉,这行会导致只能求出最大值而不能根据输入改变输出最大或最小值


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

举报

0/150
提交
取消
C++远征之起航篇
  • 参与学习       291033    人
  • 解答问题       760    个

C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华

进入课程

最大值输出为什么显示为任意值

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