C语言问题 把 INT类型 换成float 就 结果不对 为什么啊

# include <stdio.h>

int main(void)
{
float a;
a =50 % 23;
printf("a = %d\n", a);

return 0;
}

# include <stdio.h>
int main(void)
{
float a; /*变量a定义为 单精度浮点型(float)*/
a =50 % 23; /*求的是50比23的模,模为4,4为整形(int),显然与变量a的类型不 符,导致编译错误*/

printf("a = %d\n", a); /*%d为整形数据输出符,%f为浮点型输出*/

return 0;
}

解决方法:把%d改为%f
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-06
输出结果是什么?
两个可能:
1,float有精度的问题的。导致最终的输出结果不正好的4
2,50%23编译时改成了(float)50%(float)23,浮点数这样计算不知道会怎样,结果自然就不对了
第2个回答  2011-09-06
float a;定义的是浮点类型的变量,而printf("a = %d\n", a);里面的却是%d 这显然不对
第3个回答  2011-09-06
输出类型错误,楼上正解
第4个回答  2011-09-06
在 printf里面把%d换成%f就行了