C语言中满足3种条件的整数判断代码是否正确?
问题分析与修正方案
嘿,我来帮你揪出代码里的小问题~你想用&&连接多个条件的思路完全没问题,问题出在第三个条件的判断逻辑上!
先看你写的代码:
if (input >= 5 && input <= 95 && input %5)
这里的input %5会计算input除以5的余数:
- 当input能被5整除时,余数是
0,而在布尔判断里,0会被当作false,这就导致符合要求的数反而不满足条件; - 当input不能被5整除时,余数是非零值,会被当作
true,反而会被条件放行——这和你想要的效果完全相反!
修正后的代码
你需要明确判断余数是否为0,把第三个条件改成input %5 === 0(严格相等判断更稳妥):
if (input >= 5 && input <= 95 && input %5 === 0)
如果是在对类型要求没那么严格的场景下,也可以用松散相等input %5 == 0,但推荐用严格相等来避免潜在的类型转换问题。
这样修改后,就能正确筛选出5到95之间(包含边界)且能被5整除的整数啦~
内容的提问来源于stack exchange,提问作者yeahright
相关产品推荐
相关产品推荐

