#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); &&的意思是:&&左右两边的表达式都为真,整个表达式才为真,如果有一个为假,整个表达式就为假.本回答被提问者采纳
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;
}
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)