剧号 2020-11-17 20:54 采纳率: 50%
浏览 3053
已采纳

C语言PTA习题5-6 使用函数输出水仙花数 (20分)

int narcissistic( int number )
{
    int h,x=number,sum=0;
    while(x>0)
    {
        h=x%10;
        x=x/10;
        sum=sum+h*h*h;
    }
    if(sum==number)
        return 1;
    else
        return 0;
}
void PrintN( int m, int n )
{
    int i;
    for (i=m+1;i<n;i++)
    {
        if(narcissistic(i)==1)
            printf ("%d\n",i);
    }
}

,为啥我在pta平台中一直显示答案错误,求大佬解答,谢谢

  • 写回答

3条回答 默认 最新

  • Y_cen 2020-11-17 23:41
    关注

    #include <stdio.h>

    int narcissistic( int number );
    void PrintN( int m, int n );

    int main()
    {
        int m, n;

        scanf("%d %d", &m, &n);
        if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
        PrintN(m, n);
        if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);

        return 0;
    }

    /* 你的代码将被嵌在这里 */
    int narcissistic( int number )
    {
        int h,x=number,sum=0;
        int count = 0;//位数 
        while(x>0){//计算位数 ,你只考虑了三位数的情况(也可能没看清楚题目?) 
            x/=10;
            count++;
        } 
        x=number;//重置 
        
        while(x>0)
        {
            int k=1;
            for(int i=1;i<=count;i++){//N次幂 
                k*=x%10;
            }
            sum=sum+k;
            x=x/10;
        }
        if(sum==number)
            return 1;
        else
            return 0;
    }
    void PrintN( int m, int n )
    {
        int i;
        for (i=m+1;i<n;i++)
        {
            if(narcissistic(i)==1)
                printf ("%d\n",i);
        }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM
  • ¥15 Converting circular structure to JSON
  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader