首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为何出现不了Case 2中的情况?If和else咋没匹配下

2012-08-03 
为何出现不了Case 2中的情况?If和else咋没匹配上?#includestdio.hint main(){int a,b,sum1,sum2while(s

为何出现不了Case 2中的情况?If和else咋没匹配上?
#include<stdio.h>
int main()
{
int a,b,sum1,sum2;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(1<=a<=20&&1<=b<=20)
{ sum1=a+b;
printf("Case 1:\n");
printf("%d+%d=%d\n\n",a,b,sum1);}
else
{sum2=a+b;
printf("Case 2:\n");
printf("%d+%d=%d\n",a,b,sum2);}



}



return 0;
}
为何出现不了Case 2中的情况?If和else咋没匹配上?

[解决办法]
你判断a和b的范围的时候不可以用1<=a<=20的!!
应该用 (1<=a && 20>=a)
如果你写的是1<=a<=20,他会先计算1<=a得到一个布尔值,真或假,就是1或者0
1或者0都是小于20的,所以1<=a<=20一定是真的,所以
case 2肯定不会出现。

[解决办法]
单步调试一下就什么都清楚了。
[解决办法]
楼上正解,这与操作符的优先级顺序有关系,也与true和false对应的int值有关

热点排行