错误:二进制的无效操作数%(有‘;浮点’;和‘;int’;)意味着什么 #包括 内部主(空) { 随波逐流; 浮子; 浮子; scanf(“%f”&带); scanf(“%f”和inacbal); if((带%5)==0)//此处出错 { acleft=inacbal-with-0.50; printf(“%f”,英尺); } 其他的 printf(“%f”,inacbal); 返回0; }

错误:二进制的无效操作数%(有‘;浮点’;和‘;int’;)意味着什么 #包括 内部主(空) { 随波逐流; 浮子; 浮子; scanf(“%f”&带); scanf(“%f”和inacbal); if((带%5)==0)//此处出错 { acleft=inacbal-with-0.50; printf(“%f”,英尺); } 其他的 printf(“%f”,inacbal); 返回0; },c,C,这是不正确的。只能将%应用于整数。如果您真的想在浮点上执行模运算,则使用或如果您不介意余数的符号,则使用新的IEEE 754r C99。来自Sun的: 其余部分(x,y)为IEEE标准754-1985中规定的操作。余数(x,y)和fmod(x,y)之间的区别在于余数(x,y)返回的结果的符号可能与x或y的符号不一致,而fmod(x,y)总是返回符号与x一致的结果 出现该错误是因为无法将模运算符(%)与浮点运算一起使用 如果要计算其剩余部分,请像这样使用fmod(): float with; if

这是不正确的。只能将
%
应用于整数。如果您真的想在
浮点上执行模运算
,则使用或如果您不介意余数的符号,则使用新的IEEE 754r C99。来自Sun的:

其余部分(x,y)为IEEE标准754-1985中规定的操作。余数(x,y)和fmod(x,y)之间的区别在于余数(x,y)返回的结果的符号可能与x或y的符号不一致,而fmod(x,y)总是返回符号与x一致的结果


出现该错误是因为无法将模运算符(
%
)与
浮点运算一起使用

如果要计算其剩余部分,请像这样使用
fmod()

float with;
if((with%5) == 0)

fmod
将返回除法的剩余部分。不要忘记使用
fmod

时要包括
math.h
,这意味着不能用整数对浮点进行模运算。请将代码格式化为代码,而不是引号。
%
是整数运算符<带
的代码>是一个
浮点值
。C标准6.5.5:“%运算符的操作数应为整数类型。”您的程序不符合C标准,因此会出现编译器错误。这意味着您不能将浮点值作为%(mod)的操作数操作。那么我如何检查剩余的it@Dumb带的
必须是浮点吗?它可以是
int
?如果它需要是一个浮点,那么看看
fmod
+1
with
可以是一个整数,整个问题就会解决。实际上,为了避免在这一行中进行类型转换,acleft=inacbal-with-0.50;。我把所有变量都放在浮点数中,否则会有一些精度错误,使用正确的数据类型,这对变量所表示的数量是有意义的;然后仅在需要时键入case。假设你可以用-0.5f做
acleft=inacbal-(float)
float with;
if((with%5) == 0)
fmod(with,5);