请教强制转换问题之(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;这个没疑问。