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

# include <stdio.h>int main(void){ float a; a =50 % 23; printf("a = %d尀n", a);return 0;}
2025-02-22 22:46:37
推荐回答(5个)
回答1:

# include
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

回答2:

输出结果是什么?
两个可能:
1,float有精度的问题的。导致最终的输出结果不正好的4
2,50%23编译时改成了(float)50%(float)23,浮点数这样计算不知道会怎样,结果自然就不对了

回答3:

float a;定义的是浮点类型的变量,而printf("a = %d\n", a);里面的却是%d 这显然不对

回答4:

输出类型错误,楼上正解

回答5:

在 printf里面把%d换成%f就行了