DNE 在用PTA平台作一道有关阶梯电价的题目遇到的一点问题 描述问题为: 题目将整型变量cost 分为3个区间 分别是cost<0,cost<=50,cost>50; 我使用嵌套if语句的时候if后括号内的顺序分别为 (cost<0) (cost<=50)(cost>50)才能正确运行吗? 为什么将三者先后顺序变更就会得到错误的输出值? 怕描述的不清楚,附上两个图 图2为正解 图1为错解
luo_ 0<cost<=50?,好像不能直接这样写吧 应该是cost>0 && cost<=50吧 假设cost=70 0<cost返回true,也就是1 1<=50 所以0<cost<=50 在cost=70时都为true了。
0x0001 C 语言 if () 语句中间的括号部分,需要一个能推算出布尔类型的一个值的"表达式"。 0 < cost 和 cost <= 50 是单独的两个表达式,两个表达式可以合成一个新的表达式,类似 (0 < cost) && (cost <= 50),这时候需要用初高中数学说到的“整体思想”去看待(可以 借助 scratch 来建立直观)。