#include <stdio.h>
int main(void)
{
float with;
float inacbal;
float acleft;
scanf("%f",&with);
scanf("%f",&inacbal);
if((with%5)==0)//error here
{
acleft=inacbal-with-0.50;
printf("%f",acleft);
}
else
printf("%f",inacbal);
return 0;
}
答案 0 :(得分:5)
float with;
if((with%5) == 0)
不正确。您只能将%
应用于整数。如果您真的想在float
上进行模运算,请使用fmod,或者如果您对其余部分的符号不感兴趣,请使用新的IEEE 754r强制要求的C99&#39}。 s remainder。来自Sun的Numerical Computation Guide:
余数(x,y)是IEEE标准754-1985中规定的操作。余数(x,y)和fmod(x,y)之间的差异是,余数(x,y)返回的结果的符号可能与x或y的符号不一致,而fmod(x,y)始终返回符号与x符合的结果。
答案 1 :(得分:1)
您收到该错误是因为您无法将模数运算符(%
)与float
一起使用。
如果要计算剩余部分,请使用fmod()
,如下所示:
fmod(with,5);
fmod
将返回除法的剩余部分。不要忘记包含math.h
以使用fmod
。