客服说我昵称违规 2022-02-06 16:55 采纳率: 0%
浏览 22

C语言 关于0到1区间属于bool类型的true还是false?

问题遇到的现象和发生背景

最近在做牛客网的华为机试题,遇到了个白丝不得姐的问题,该题目可搜索:HJ14 字符串排序

问题相关代码,请勿粘贴截图

if(strcmp(str[j],str[j+1])>0) //这样写是对的
if(strcmp(str[j],str[j+1])) //这样写是错误的

我的解答思路和尝试过的方法

以下是strcmp相关的:
extern int strcmp(const char *s1,const char *s2);
规则
当s1<s2时,返回为负数;
当s1=s2时,返回值= 0;
当s1>s2时,返回正数。

if语句的判定条件非0即为真
问题就这么出现了:当s1>s2时,返回正数,即返回值>0,if判定应该为真啊.
可是if(strcmp(str[j],str[j+1])) 就是错误的

是我对概念理解错误了?
还是由于编译环境的原因出现的问题呢?
求姐

  • 写回答

3条回答 默认 最新

  • 关注

    0就是false,其他都是true。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月6日

悬赏问题

  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!