asdsa3a 2021-04-22 20:07 采纳率: 50%
浏览 41
已采纳

初学C语言遇到问题,求解答

使用函数输出水仙花数:输入两个正整数m和n (100<=m<=n <1 000),输出间(m, n)内所有的水仙花数。所谓水仙花数是指一个n位正整数(n>=3),它的各位数的n次方之和等于它本身。调用函数nareissistc(number)判断数量是否为水仙花数,是则返回1,否则返回0;定义和调用函数print-n (m, n)按从小到大的顺序输出区间(m, n)内所有的水仙花数。

#include<Stdio.h>
int narcissistic(int num);
void print_n(int m,int n);
int main()
{
    int m,n,c;
    printf("Enter m,n:");
    scanf("%d%d",&m,&n);
    print_n(m,n);
    return 0;
}
void print_n(int m,int n)
{
    int i;
    for(i=m;i<=n;i++){
        if(narcissistic(i)==0){
            printf("%d",i);
        }
    }
    return;
}
int narcissistic(int num)
{
    int num_,a,sum,count;
    num_=num;
    while(num_!=0)
    {
        a=num_%10;
        sum+=a*a*a;
        num_/=10;
    }
    if(sum==num){
        return 1;
    }else{
        return 0;    
}
}

  • 写回答

1条回答 默认 最新

  • 正在学C++ 2021-04-22 20:17
    关注
    #include<Stdio.h>
    int narcissistic(int num);
    void print_n(int m,int n);
    int main()
    {
        int m,n;                        //多了个无用参数c
        printf("Enter m,n:");
        scanf("%d%d",&m,&n);
        print_n(m,n);
        return 0;
    }
    void print_n(int m,int n)
    {
        int i;
        for(i=m;i<=n;i++){
            if(narcissistic(i)==1){     //返回1表示是水仙花数
                printf("%d ",i);        //加个空格
            }
        }
                                        //void类型的就直接不要写return了
    }
    int narcissistic(int num)
    {
        int num_,a,sum=0;           //为sum赋初值0 去掉无用变量count
        num_=num;
        while(num_!=0)
        {
            a=num_%10;
            sum+=a*a*a;                 //sum没有赋初值
            num_/=10;
        }
        if(sum==num){
            return 1;
        }else{
            return 0;
        }
    }

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料