一道小编程题,按书上输入,可是运行出错!如下:#include <stdio.h>#include <math.h>void main(){double x,y;printf("input x:\n");scanf("%1f",&x);if(x<1) y=x+1;else if(x<2) y=x+2;else y=x+3;printf("f(%f)=%.2f\n",x,y);}按书上输入0.5得f(0.500000)=1.50可是我自己运行却不行,请大家帮忙看一下是怎么回事?

热心网友

不是书上错了,是你看错了!是lf,不是1f!(LF,不是1F),明白没有?所以程序为:#include#includevoidmain(){doublex,y;printf("inputx:\n");scanf("%lf",&x);/*注意这里的LF格式*/if(x<1)y=x+1;elseif(x<2)y=x+2;elsey=x+3;printf("f(%lf)=%.2lf\n",x,y);/*注意这里的LF格式*/}执行结果: (0.500000)=1.50我在LinuxGCC下编译通过。

热心网友

else if是否是elseif

热心网友

统一楼上观点

热心网友

改:#include #include void main()float x,y;printf("input x:\n");scanf("%1f",&x);if(x<1) y=x+1;else if(x<2) y=x+2;else y=x+3;printf("f(%f)=%.2f\n",x,y);}