问一个初级C语言问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 23:02:34
#include <stdio.h>
int main (void)
{
int j,k=3;
float x=5.5;
j=x/k;
printf (" %f \n",j); /*0.000 000*/
return 0;
}
请问结果为什么是0.000 000,还有就是开始定义的j的数据类型是整型,z在printf函数中确是浮点型,有冲突吗?

如果没有用强制类型转换,j=x/k的运行结果就是浮点型,编译时是警告而不是错误,因为int跟float混在一起运算的时候在内部都是先转换成double型再进行运算的。

如果J定义是浮点型就不会有这个问题了.
x/k 的结果是浮点型,把浮点型副值给整型就会是0.000 000了.
你可以用j=1.8333试一下.

因为j是int 类型,改为:
float j;就可以了啦!