为什么c语言中我输入一个值却有两个结果

#include<stdio.h>
int main()
{
double x,y;scanf("%lf",&x);
if(x<1)
{y=x;printf("y=%lf\n",y);}
if(1<=x<10)
{y=2*x-1;printf("y=%lf\n",y);}
if(x>=10)
{ y=3*x-11;
printf("y=%lf\n",y);}
return 0;
}
求大神

第1个回答  2014-09-08
你这种写法是错的.
if (1<=x<10)这句执行后成这样(x=5):
if (1<10) 1<=x(x=5)成立,所以1<=x就会变成1然后1肯定小于10.
如果x=0.1:
if (1<=x<10)这句就会变成:
if (0<10) 因为x小于1,所以x<=1这句就为假,假就是0,而0一定小于10.
所以,if (1<=x<10)要改成:if (1<=x && x<10); &&的意思是:&&左右两边的表达式都为真,整个表达式才为真,如果有一个为假,整个表达式就为假.本回答被提问者采纳
第2个回答  2014-09-08
#include<stdio.h>
int main()
{
double x,y;scanf("%lf",&x);
if(x<1)
{y=x;printf("y=%lf\n",y);}
if(1<=x&&x<10)//<------------
{y=2*x-1;printf("y=%lf\n",y);}
if(x>=10)
{     y=3*x-11;
printf("y=%lf\n",y);}
return 0;
}

第3个回答  2014-09-08
if(1<=x<10) ==> if(1<=x && x<10)

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网