注册 登录
编程论坛 C语言论坛

水仙花数判断无法输出,求助!

好烦、 发布于 2020-11-07 12:32, 2062 次点击
题目描述
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。
(100<=m<=n<=999)。
编程要求,要求编写一个判断水仙花数的函数,在主函数中调用该函数判断某个数是否为水仙花数。
 
输入描述
输入数据包括两个整数m和n
 
输出描述
要求输出所有在给定范围内的水仙花数如果有多个,则要求在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no;(注意:输出字母小写)
 
输入样例
100  999
 
输出样例
153 370 371 407
#include<stdio.h>
#include<math.h>
void judge(int a)
{
    int b,c,d;
    b=a%10;
    c=a/10%10;
    d=a/100;
    if(a==b*b*b+c*c*c+d*d*d)
        printf("%d ",a);
}
int main (void)
{
    int i,m,n,a,sum=0;
    scanf("%d%d",&m,&n);
    for(;i<=n;m++)
    {
        scanf("%d",&a);
        judge(a);
    }
    return 0;
}
4 回复
#2
好烦、2020-11-07 12:50
是在下沙雕了
#3
风过无痕19892020-11-07 22:17
回复 2楼 好烦、
我不懂你说的沙碉是什么意思,但你的程序有错;其一,要求是输出所有的水仙花数;其二输入一个数,判断是否为水仙数
#4
apull2020-11-09 14:19
i没有初始化,
循环判断里i没有改变,
循环里的scanf多余。
#5
jyxiasf2020-11-09 19:36
#include<stdio.h>
#include<math.h>
bool judge(int a)
{
    int b,c,d;
    b=a%10;
    c=a/10%10;
    d=a/100;
    if(a==b*b*b+c*c*c+d*d*d)
       return true;
    else
        return false;
}
int main (void)
{
    int i,n,m;
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
    {
       if (judge(i)==true)
           printf("%d ",i);
    }
    return 0;
}
1