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

程序哪里有问题,输出结果不正确。min 5和max10(10,5,19,3)

#include <stdlib.h>

#include <iostream>

using namespace std;


int getMaxOrMin(int *arr, int count, bool isMax)

{

int temp = arr[0];

for (int i = 1; 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)

{

bool isMax=false;

int arr1[4] = {10,5,19,3 };

cin >> isMax;

cout << getMaxOrMin(arr1,4, isMax)<<endl;

system("pause");

return 0;


}


正在回答

4 回答

return temp;应该放在for循环之后返回值!你的这个位置只进行一次循环就被终止啦!for循环中的return中断了循环!下次写代码时将中括号对应起来就好看多啦!

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

幺怪 提问者

非常感谢!
2016-04-08 回复 有任何疑惑可以回复我~
#2

幺怪 提问者

写的时候是对齐的,粘贴过来的时候没注意就成这样了。
2016-04-08 回复 有任何疑惑可以回复我~

return temp;应该放在for循环之外,这个位置只进行一次循环就被终止啦!for循环中的return中断了循环!下次写写程序的时候要注意层次感,养成一个好的习惯,对以后的学习和编程过程是有百利而无一害的。

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

只有一句代码出错,就是return temp;此句不应该出现在循环内,而应该出现在循环外,不知道你注意到了没有?

修改之后程序运行无错误。



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

// Project01.cpp : 定义控制台应用程序的入口点。

//

#include <StdAfx.h>

#include <stdlib.h>

#include <iostream>

using namespace std;


int getMaxOrMin(int *arr, int count, bool isMax)

{

int temp = arr[0];

for (int i = 1; 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)

{

bool isMax=false;

int arr1[4] = {10,5,19,3 };

cin >> isMax;

cout << getMaxOrMin(arr1,4, isMax)<<endl;

system("pause");

return 0;


}


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

举报

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

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

进入课程

程序哪里有问题,输出结果不正确。min 5和max10(10,5,19,3)

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