# 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
输出结果是什么?
两个可能:
1,float有精度的问题的。导致最终的输出结果不正好的4
2,50%23编译时改成了(float)50%(float)23,浮点数这样计算不知道会怎样,结果自然就不对了
float a;定义的是浮点类型的变量,而printf("a = %d\n", a);里面的却是%d 这显然不对
输出类型错误,楼上正解
在 printf里面把%d换成%f就行了