lhyakn 2018-10-03 05:46 采纳率: 100%
浏览 1016
已采纳

C++中if无法正常判断的问题。

Emmm,今天在刷leetcode的时候出了个奇怪的问题。

//temp-(i*2)是一个int类型,s为string类型
if( temp-(i*2) >= s.length())
    break; 

这条if语句总是判断为true,然后break。但我在if后面输出两个变量的值的时候,temp-(i*2)
明显小于s.length()啊。

图片说明

但如果这样修改的话,程序就可以正常执行了

int length = s.length();
if( temp-(i*2) >= length)
    break; 

但这到底是为什么。。。?

  • 写回答

5条回答 默认 最新

  • wxtwine2 2018-10-06 10:36
    关注

    s.length() 返回值是size__type 不是int,强转之后再比较是没问题的,所以你看到了两个不同的运行结果_。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥100 单片机hardfaulr
  • ¥20 手机截图相片分辨率降低一半
  • ¥50 求一段sql语句,遇到小难题了,可以50米解决
  • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费