如果已经定义了:float x=1.5;int a=1,b=3,c=2;以下两个switch语句,哪个正确,哪个错误,错哪啊?switch(x){case 1.0:printf("*\n");case 2.0:printf("**\n");}switch(a+b){case 1:printf("*\n");case 2+1:printf("**\n");}
參考答案:第一个错误,第二个正确;
第一个中x为float类型;对float类型不能进行等于操作;
如果你想判断x是否等于1.5,判断方式如下:
bool Complete(float x,float y)
{
float tmp=0.***********;
if((x-y)<tmp && (y-x)<tmp)
return true;
else
return false;
}
对于float类型变量的判断必须使用两个数之差是否小于某值得方式判断;
而在你的第一个switch语句中,判断了x是否等于1.0和x是否等于2.0,这种判断方式不对;