acm上2010题,结果对,就是提交不上,出现Compilation Error为什么啊 5

#include<stdio.h>#include<math.h>intmain(){intm,n,fl,a,b,c,i;while(scanf("%d%d",&m,&n... #include <stdio.h>
#include<math.h>
int main()
{
int m,n,fl,a,b,c,i;
while(scanf("%d %d",&m,&n)==2)
{
fl=0;
for(i=m;i<=n;i++)
{
a=i/100;
b=(i%100)/10;
c=i%10;
if(i==pow(a,3)+pow(b,3)+pow(c,3))
{
printf("%d ",i);
fl=1;
}
}
if(fl==0)
printf("no");
printf("\n");
}
return 0;
}
展开
 我来答
kaixingui2012
2012-03-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6482万
展开全部
if(i==(int)(pow(a,3)+pow(b,3)+pow(c,3)) )这样改一下试试
因为pow的返回值是double,与整型比较可能有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-03-16 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1862万
展开全部
#include <stdio.h>
#include<math.h>
int main()
{
int m,n,fl,a,b,c,i;
int flag;
while(scanf("%d %d",&m,&n)==2)
{
fl=0;
flag=0;
for(i=m;i<=n;i++)
{
a=i/100;
b=(i%100)/10;
c=i%10;

if(i==pow(a*1.0,3.0)+pow(b*1.0,3.0)+pow(c*1.0,3.0))//加上转化,double调用明确,你是用C++提交的吧,如果是用G++提交就不会有问题
{
if(flag)putchar(' ');//防止PE
flag=1;
printf("%d",i);
fl=1;
}
}
if(fl==0)
printf("no");
printf("\n");
}
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式