请教强制转换问题之(int)2*x
程序代码:#include<stdio.h>
main()
{
float x;
printf("请输入x:\n");
scanf("%f",&x);
if(2<x&&x<=10)printf("y=%d\n",(int)(x*(x+2)));
else if(-1<x&&x<=2)printf("y=%d\n",(int)2*x);
else if(x<=-1)printf("y=%d\n",(int)(x-1));
}输入2输出y=0;这个有疑问?请问为什么·?我没想明白,
强制转换不是将2转换为int再乘上x=2所以应该也是4(float型)啊
为什么是0?
还有不管是输入1,0,
y都等于0.
郁闷了·
若是将else if(-1<x&&x<=2)printf("y=%d\n",(int)2*x);改为else if(-1<x&&x<=2)printf("y=%d\n",(int)(2*x));y=4;这个没疑问。










像2楼说的,我改了下,可以了