C++中“left operand has type 'float'”是种什么错误? 10

#include<iostream>usingnamespacestd;voidmain(){inta,b,n=0,s=0;floatc,d;b=a+1;c=a*b-1;... #include <iostream>
using namespace std;
void main()
{int a,b,n=0,s=0;
float c,d;
b=a+1;
c=a*b-1;
for(a=2;a<=49;a++)
{
for(d=2;d<c;d++)
if(c%d!=0)
{
n+=1;
s+=c;

}
}
cout<<n<<endl;
cout<<s<<endl;
}
结果显示:(11) : error C2296: '%' : illegal, left operand has type 'float'
(11) : error C2297: '%' : illegal, right operand has type 'float'
该如何修改?
展开
 我来答
vampire_c
2015-04-10 · TA获得超过735个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:486万
展开全部
 if(c%d!=0)

这一行,取余操作仅适用于整型类型,而c,d均为浮点类型,因此报错:

  % 左操作数为float,右操作符为float


代码中没有涉及浮点操作,可以把c,d变为整型。

追问
可如果c,d变为整形了,程序就有逻辑错误了……
追答
呃…逻辑错误另外分析嘛,程序里的运算均不涉及浮点数,即使使用float类型,同样会有逻辑错误的。另外,变量a在使用前没有赋初值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式