C语言 水仙花数 我编的程序是错的,但不知道哪错了,求高手帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:44:55
/*输入两个正整数m和n(m>=1,n<10000),输出m到n之间的所有水仙花数*/
#include <stdio.h>
int main(void)
{
int m,n,i,d,s,sum=0;

printf("Input m,n:");
scanf("%d,%d",&m,&n);

for(i=m;i<=n;i++){
s=i;
while(i!=0){
d=i%10;
i=i/10;
sum=sum+d*d*d;
}
if(s==sum)
printf("%d\n",sum);
}

return 0;
}

/*输入两个正整数m和n(m>=1,n<10000),输出m到n之间的所有水仙花数*/
#include <stdio.h>
int main(void)
{
int a,b,c,s,i,d=0,m,n;
printf("Input m,n:");
scanf("%d,%d",&m,&n);
for(i=m;i<=n;i++)
{
if((i>=100)&&(i<1000))
{
a=i/100;b=i%100/10;c=i%10;
if(i==a*a*a+b*b*b+c*c*c){
printf("%d,%d,%d,%d",a,b,c,d);
printf("水仙花数有:");
printf("%d\n",i);
}
}
else if(10000>i&&i>=1000)
{
a=i/1000;b=i%1000/100;c=i%100/10;d=i%10;
if(i==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
{
printf("%d,%d,%d,%d",a,b,c,d);
printf("水仙花数有:");
printf("%d\n",i);}
}
else
;
}
}

楼主的方法错了
看看我的代码吧
上楼的好像有点问题,我运行了,结果不对啊!
不过方法挺好的,我用的是笨方法!

这个程序是错误的,水仙花数是指一个 n 位数 ( n≥3 ),它的每