C语言的强制类型转换运算符

main()
{
float x;
int i;
x=3.6;
i=(int)x
printf(“x=%f,i=%d",x,i);
}
结果是x=3.600000,i=3
x的结果可以理解,但是为什么i=3?
%f,%d 怎么理解?%的运算是怎么回事?

第1个回答  2014-07-27
应该是7 printf("(1)x=%lf\n",x);少了l
10 x=(int)x; 改为
int i;
i = (int)x;
行了
第2个回答  2014-07-27
错误出在,虽然,你认为是将X是一个INT型变量,可他还是一个DOUBLE型,
x=(int)x;.//前面的是DOUBLE型,后面的是iNT型的临时变量(系统不会保存),因此还是DOUBLE型
#include<stdio.h>
main()
{ double x;
printf("enter x:\n");
scanf("%lf",&x);
printf("(1)x=%f\n",x);
x=(int)x;
printf("(2)x=%.0f\n",x);
}
这样就行了。
相似回答