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

输入输出问题

#include<iostream>;

#include<stdlib.h>;

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){

int arr1[4] = {9, 4, 8, 3};

bool isMax = false;

cin >> isMax;

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

system("pause");

return 0;

}


请问为什么我输入0 它输出9 ,我输入1 它输出4

错在哪呀

正在回答

2 回答

你这个逻辑乱了,少年。

按照你的程序,开始temp=9,然后遍历到arr1[1].如isMax为0,则直接跳出,temp=9;如为1,则判断temp<arr[i],为假,到else里判断temp>arr[i],为真,则temp=4,之后跳出。

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

Maseghini4089428 提问者

非常感谢!
2017-02-23 回复 有任何疑惑可以回复我~
#2

ER木偶呀

输入为1不是真吗,直接运行第一个if语句吗求最大值
2019-03-23 回复 有任何疑惑可以回复我~

还有楼主括号有点乱啊

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

ER木偶呀

那个temp=arr【0】 是不是说所有的arr元素 因为在后面用temp做比较 但是赋值的是【0】。
2019-03-23 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

输入输出问题

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