c语言 水仙花数问题

Input
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。 Output
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。

#include<stdio.h>
int main()
{
int m,n,s,a,b,c,i;
while(scanf("%d%d",&m,&n)!=EOF)
{
s=m;
i=0;
while(s<=n)
{
a=s/100;
b=(s-a*100)/10;
c=s-a*100-b*10;
if(a*a*a+b*b*b+c*c*c==s)
{
i=i+1;
if(i==1) printf("%d\n",s);
else if(i>0) printf(" %d\n",s);
else if(i==0) printf("no\n");
}

s=s+1;
}
}
return 0;
}
错误提示
2_13083_886892_17297.cpp: In function `int main()':
2_13083_886892_17297.cpp:18: error: stray '\163' in program
2_13083_886892_17297.cpp:18: error: stray '\168' in program
2_13083_886892_17297.cpp:18: error: expected `;' before string constant
是C++的

谁能帮我看一下错在哪里

已经知道括号内空格的问题了,但是答案输出还是错的
wrong answer。。。
帮忙看看还有哪里错了

看看你的18行:
else if(i>0) printf(" %d\n",s);
第二个左括号打成中文的了,需要修改为:
else if(i>0) printf(" %d\n",s);追问

回答是答案错误,能帮我看一下么

追答

不明白你在说什么,难道你认为你哪个中文括号是对的,我改为英文反而错误了,我不相信,请粘贴修改后的错误信息。

追问

之前是程序错误,不能运行,现在是可以运行但输出的答案错了。。。

追答

下面的程序调试通过,能正确运行:
#include
int main()
{
int m,n,a,b,c,i=0;
scanf("%d%d",&m,&n);
while(m<=n)
{
a=m/100;
b=(m-a*100)/10;
c=m-a*100-b*10;
if(a*a*a+b*b*b+c*c*c==m){i=i+1;printf("%d\n",m);}
m=m+1;
}
if(i==0) printf("no\n");
return 0;
}

运行时候你可以输入100 999测试。

追问

,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
这里你没做到啊
还是错,会不会 格式错误什么的。。。,郁闷死了

追答

我现在是从小到大输出,不过是一行一个,你现在才说要求空格分开,你吧%d\n改为%d 即可,注意d后面一个空格。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-20
else if(i>0) printf(" %d\n",s);
这个语句中的printf后面的括号,换成英文输入的半角符号的就可以了
或者直接复制我这个
else if(i>0) printf(" %d\n",s);
你再试试,希望能帮你解决问题。追问

回答是答案错误,能帮我看一下么

追答

答案是对的啊,怎么不对了啊?

追问

它显示是 wrong answer,可能有些小错误吧,帮忙看一下

第2个回答  2011-10-20
else if(i>0) printf(" %d\n",s);这条语句中prinf后面的括号是一个中文的括号
第3个回答  2011-10-20
我帮你调试了下 没有错误啊

如何实现用C语言输出所有的“水仙花数”?
一、问题描述:输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。二、问题分析:根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并...

如何实现用C语言输出所有的“水仙花数”?
1. 问题定义:目标是寻找所有三位数,其每个位上数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153 = 1^3 + 5^3 + 3^3。2. 分析问题:要验证一个三位数是否为“水仙花数”,需要将该数拆分为百位、十位和个位上的数字,计算这三个数字的立方和,如果立方和等于原数,则该数...

C语言编写水仙花数
本文提供了一个C语言程序实现判断一个数是否为水仙花数的示例代码。水仙花数定义为一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1的立方(1)+ 5的立方(125)+ 3的立方(27)等于153。程序首先定义了长整型变量m存储输入的数,变量s存储各位数字之和,变量n用于存放去...

c语言 编程求三位数的水仙花数?
int a,b,c; \/\/定义百、十、个位变量 for(i=100;i<=999;i++) \/\/循环从100到999 { a=i\/100; \/\/取百位 b=i%10\/10; \/\/取十位 c=i%10; \/\/取个位 if(i==a*a*a+b*b*b+c*c*c) \/\/判断是否为水仙花数 { printf("%d\\n",i); \/\/输出水仙花数 } } return 0;} ...

急求C语言问题:求100-999之间的水仙花数!用C语言写啊
main(){ int i,j,k,n;printf("水仙花数是:");for (n=100;n<1000;n++){i=1\/100;j=n\/10-i*10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf("%4d",n);} } 运行结果:水仙花数是:153 370 371 407

c语言判断水仙花数
C语言输出水仙花数的具体分析和实现流程如下:1、水仙花数的含义 “水仙花数”是一个三位数其各位数字的立方和等于该数本身。例如:3^3 + 7^3+ 0^3 = 370 2、算法分析 把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和(设为sum),若sum与给出的三位数相等, 则为“水仙花数”...

C语言经典案例分析(水仙花数)
在计算机编程领域,C语言堪称基础。今天,我们将深入探讨两个经典案例:水仙花数和素数,旨在揭示学习C语言的精髓。这两个案例不仅具有学习价值,而且在编程实践上有着广泛的应用。它们可以作为题目、问题和解决方案的蓝本,考验着我们的逻辑思维和编程技能。接下来,我们聚焦于水仙花数的解题策略。首先,让...

急需用C语言解决以下问题!! 一千以内的水仙花数 一百以内偶数的阶乘之和...
1、计算水仙花数 include <stdio.h>void main(){int i,a,b,c;for(i=100;i<=999;i++){a=i%10;b=i\/10%10;c=i\/100;if(a*a*a+b*b*b+c*c*c==i)printf("%d ",i);}} 运行结果截图:2、100以内偶数的阶乘之和 include <stdio.h>void main(){int i,j;double k=1,sum=0...

C语言找出最大水仙花数(水仙花数是3位整数,且各位立方之和等于该数...
include <stdio.h> int main(){ int i=0, a=0, b=0, c=0;int max=0;printf("3位数的水仙花数为:\\n");for(i=100; i<1000; i++){ a=i%10;b=i\/10%10;c=i\/100%10;if(a*a*a+b*b*b+c*c*c == i){ max=i;} } printf("最大的三位水仙花数为:%d\\n",max);ret...

c语言编程题 找出所有的水仙花数,水仙花数是指一个3位数
if(i==(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3))){ System.out.println(i+"是水仙花数");} } } Test public void test(){ isNarcissusNumber();} \/ 结果:--->153是水仙花数 --->370是水仙花数 --->371是水仙花数 --->407是水仙花数 \/ } ...

相似回答