error C2296: '%' : illegal, left operand has type 'double '

#include<stdio.h>#include<math.h>voidmain(void){ longx; inti,su... #include <stdio.h>#include <math.h>void main(void){ long x; int i,sum; scanf("%ld",&x);for(i=0,sum=0;pow(10,i)<=x;i++){sum+=x/pow(10,i)%10;}printf("sum=%d\n",sum);}error C2296: '%' : illegal, left operand has type 'double '怎么回事啊 展开
 我来答
老猿Python
推荐于2016-12-02 · TA获得超过918个赞
知道小有建树答主
回答量:459
采纳率:100%
帮助的人:322万
展开全部
是因为取余数的运算符%只能用于整数,不能用于浮点数,而由于pow函数返回为浮点数,x/pow(10,i)肯定是浮点数,因此会报错。
hgxingk
2012-03-26 · TA获得超过162个赞
知道答主
回答量:47
采纳率:0%
帮助的人:40.9万
展开全部
类型转换问题,sum += int(x/pow(10,i))%10;就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宰焕元清韵
2019-07-04 · TA获得超过3828个赞
知道大有可为答主
回答量:3138
采纳率:33%
帮助的人:203万
展开全部
^是异或运算,它要求是整型,而sqrt是double,你可以用一个(int)强制转换一下另外,没看懂你为什么^n,是不是你以前用VB的,在C中用幂的话使用pow(x,n)函数,用math.h头文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-26
展开全部
#include<iostream> #include<math.h> using namespace std; void main() { double a,c,e; int d,b; cin>>a; cin>>b; c=pow(a,b); d=c/100000; e=b%100000;//b是浮点数的时候不能用取余操作的,取余操作是对整数的 cout<<d<<endl; cout<<e<<endl; } ~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jrnfrpicza
2012-03-27
知道答主
回答量:19
采纳率:0%
帮助的人:3万
展开全部
{ double a,c,e; int d,b; cin>>a; cin>>b; c=pow(a,b); d=c/100000; e=b%100000;//b是浮点数的时候不能用取余操作的,取余操作是对,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式