杭电 acm 2010 水仙花,大侠帮忙看看,提交提示Compilation Error

#include<stdio.h>intmain(){intm,n;intflag=0;while(scanf("%d%d",&m,&n)!=EOF){inta,b,c;... #include<stdio.h>
int main()
{
int m,n;
int flag=0;
while(scanf("%d%d",&m,&n)!=EOF)
{
int a,b,c;
for(int i=m;i<=n;i++)
{
a=i/100;
b=(i%100)/10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d ",i);
flag=1;
}
}
if(!flag)
printf("no");
printf("\n");
}
return 0;
}
展开
 我来答
zy791334054
2012-07-26
知道答主
回答量:6
采纳率:0%
帮助的人:3.6万
展开全部
注意:
1、flag作为标记时,每次输入数据都要初始化,你用原来的代码,把测试数据颠倒一下顺序,先输入300 380,再输入100 120,就很明显出问题了。
2、这道题对输出格式要求比较严,它要求再输出数据时,后面不能有空格,拿测试数据来说(空格有下划线_表示), 370_371 ,而用你的代码输出的是 370_371_
这在做题时不常遇到,但还是提醒你以后就这么写,看******
#include<stdio.h>
int main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
int flag=0;
int a,b,c;
for(int i=m;i<=n;i++)
{
a=i/100;
b=(i%100)/10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
{

if(flag==0)printf("%d",i); *******
else printf(" %d",i);

flag=1;
}
}
if(!flag)
printf("no");
printf("\n");
}
return 0;
}
希望给赞同 ^_^
h2952220
2012-07-25 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:75.6万
展开全部
你提交的时候不要选C,C不允许有for(int i;;)这样的语法。(选C++或者G++)
另外
1.如楼上flag每次循环重置
2.printf("%d ",i);这句话会导致最后多出一个空格,解决办法自己想,这是经常要处理的事情
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tidus_forever
2012-07-25 · TA获得超过4399个赞
知道大有可为答主
回答量:2782
采纳率:100%
帮助的人:1860万
展开全部
int a,b,c;

flag=0; // 每次要重置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zly061066
2012-07-26
知道答主
回答量:4
采纳率:0%
帮助的人:6321
展开全部
#include<stdio.h>
main()
{
int m,n,i,w,a,b,c,j,s,d;
while(scanf("%d %d",&n,&m)!=EOF)
{
d=0;
j=1;
if(m>n)
{
w=m;
m=n;
n=w;
}
else ;
for(i=m;i<=n;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
s=a*a*a+b*b*b+c*c*c;
if(i==s)
{
if(d!=0)
printf(" ");
printf("%d",i);
d=d+1;
j=j+1;
}
}
if(j==1)
printf("no\n");
else
printf("\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式