#include<stdio.h>void main(){int high;int old;printf("%s\n","请输入年龄与身高!");scanf("%d,%d\n",&old,&high);if(12<=old<=18) { if(high>=185) { printf("%s\n","你将是一个有潜力的运动员"); } else { printf("%s\n","你不太适合当运动员"); }}elseprintf("%s\n","你年龄不合适");}
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
第一个if中的判断表达式你写的是 12<=old<=18
因为关系运算符<=是左结合的,所以C语言是这样解释它的: (12 <= old) <= 18
12 <= old 的结果是布尔值true or false,这个布尔值会被当作下一个比较运算的操作数,因此会被转换为整型来和18做比较,true会被转换为整型1,false会被转换为整型0。所以不管前面的结果是true还是false,整个表达式的结果都为真(1和0都小于18)。 也就是说这样写表达式并不能起到区间判断的作用!
正确的写法是用逻辑与运算符将两个比较连起来: 12 <= old && old <= 18
- 1 回答
- 1 关注
- 1318 浏览
添加回答
举报
0/150
提交
取消