qq_47379349 2022-07-07 11:44 采纳率: 0%
浏览 16

C++ bool 函数问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

#include
using namespace std;
bool cmp(int a,int b){
if(a>b){
return true;
}
else if(a<b){
return false;
}
}
int main()
{
int a = 5;
int b = 5;
if(cmp(a,b)){
cout << "a> b!" << endl;
}
else{
cout << "a< b!" << endl;
}
return 0;
}

运行结果及报错内容

程序运行结果 a>b!

我的解答思路和尝试过的方法
我想要达到的结果

但实际上我是令a=b的,为什么结果是这样呢?

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-07-07 11:50
    关注

    你函数里就没有处理if(a==b)啊,所以实际函数没有执行任何return语句,返回的是个垃圾值,对于if(cmp(a,b))来说,只要cmp函数返回的不是0,那if语句就成立,所以输出a>b!了。
    cmp函数显然有三种状态要返回,大于,小于或等于,所以你用bool类型作为返回值是有问题的,bool只能是两种状态

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月7日

悬赏问题

  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多