ACM求大神错哪里了,hdu2010水仙花数 你的代码没问题,运行了一下可以输出水仙花数,然后我去查了杭电的具体题目,才知道是你的输入和输出不对,先说输入,你的输入只有一次,但是题目的原话是—“输入数据有多组,每组占一行,包括两个整数m和n(100)。所以你的输入“scanf(\"%d%d\",&m,&n);应该改成—while(scanf(\"%d%d\",&m,&n)。EOF){中间具体代码*/}意思是每当有输入的时候就执行中间的具体代码。(!EOF\"的大概意思是输入不为空,实在想知道具体意思的话可以自己去查一下,这里就不多说了。然后是输出问题,这只是个小问题,但没意识到的话确实很难找出来,原题对输出的描述—如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开所谓之间用一个空格隔开,是指1 2 3 4 5这种(5后面没有空格),而不是1 2 3 4 5 这种(5后面有空格),看你的代码,输出的明显就是后一种,所以你的不对,修改方法的话,你自己看下面的具体代码吧—includeint main(){int m;int n;while(scanf(\"%d%d\",&m,&n)。EOF){int c=m;if(m>;n){m=n;n=c;}int t=0;int i=0;for(i=m;i;i+){int a=0;int b=i;while(b>;0){a=a+(b%10)*(b%10)*(b%10);b=b/10;}if(a=i){if(t=0)/第一次输出只输出一个数,。
杭电ACM 2010水仙花数 这位是刚开始搞ACM的吧,这边有三个错误,但是都不是其他两位回答的,第一个是基本知识,提交ACM题目主函数要命名为int型,并且结尾要加return 0;第二个是逻辑错误,当你每次重新打入m,n时,你的水仙花个数都要给它清零,也就是d要再输入后清零。最后是输出问题,仔细看看输出要求,“则要求从小到大排列在一行内输出,之间用一个空格隔开;也就是你输出的最后一个数后面是没有空格的,这里我用了一个判断来实现,当d=0时,也就是第一次输出时,我的数字前面没空格,之后输出空格再输出数字。includeint main(){int m,n,a,b,c,d;while(scanf(\"%d%d\",&m,&n)。EOF){d=0;每次输入要初始化个数。while(m){a=m%10;b=(m%100)/10;c=m/100;if(a*a*a+b*b*b+c*c*c=m){if(d=0)printf(\"%d\",m);else printf(\"%d\",m);d+;}m+;}if(d=0)printf(\"no\\n\");else printf(\"\\n\");}return 0;}这个直接提交就能过,刚提交了下
c语言-水仙花数问题 ACM 加一个变量就好了,看注释includevoid main(){int m,n,a,i,s,k;int nFlag;加个变量控制就好了while(scanf(\"%d%d\",&m,&n)。EOF){if(100){nFlag=0;先设置为0for(a=m;a;a+){for(i=a,s=0,k=0;i>;0;{k=i%10;i=i/10;s=s+k*k*k;}if(a=s){nFlag=1;如果找到就赋值为1printf(\"%d\",s);}}if(nFlag=0)/如果还是0证明没找到{printf(\"no\\n\");}}}}