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

我的代码可以运行可是结果为什么不对

#include<iostream>
#include<stdlib.h>
using namespace std;
   
int getMaxorMin(int *arr,int count,bool ismax)
{
int temp;
if(ismax)
{
temp=arr[0];
for(int i=1;i<count;i++)
{
if(temp<arr[i])
{
temp=arr[i];
}
}
return temp;
}
if(ismax)
{
temp=arr[0];
for(int i=1;i<count;i++)
{
if(temp>arr[i])
{
temp=arr[i];
}
}
return temp;
}
}
int main(void)
{
int ismax;
cin>>ismax;
int arr1[4]={1,5,7,2};
cout<<getMaxorMin(arr1,4,ismax)<<endl;
system("pause");
return 0;
}

正在回答

3 回答

为什么你有8个{却只有7个 };注意下return的位置和一开始定义的在一个大括号里面

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

①你在getMaxorMin里用了两个if(isMax)。if(isMax)的意思是如果isMax结果为true则怎么怎么样。现在如果传入isMax=true就会有两个入口,如果isMax=false就会没有入口。
建议:
if(isMax)
{
...
}
else
{
...
}
②你在getMaxorMin里需要的是布尔型的isMax,在main函数里传入的是整型的isMax,不匹配。(不知道这个会不会有问题,还没有试过)
③你在main函数中声明的isMax没有赋初值,可能导致编译时随机赋值。
在下才疏学浅,说的有什么不对的还请见谅。

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

#include<iostream>
#include<stdlib.h>
using namespace std;
   
int getMaxorMin(int *arr,int count,bool ismax)
{
int temp;
if(ismax)
{
temp=arr[0];
for(int i=1;i<count;i++)
{
if(temp<arr[i])
{
temp=arr[i];
}

else
{
 if(temp>arr[i])
 {
  temp=arr[i];
 }
}


if(temp>arr[i])
{
temp=arr[i];
}
}
return temp;
}
}
int main(void)
{
int arr1[4]={1,5,7,2};
bool ismax =false;
cin>>ismax;
 

cout<<getMaxorMin(arr1,4,ismax)<<endl;
system("pause");
return 0;
}

改完后的代码,请参考

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

学霸985

你的这个输入什么就输出什么,,
2019-08-03 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

我的代码可以运行可是结果为什么不对

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