我好菜(哭) 2023-11-17 16:35 采纳率: 62.5%
浏览 24

PTA C语言利用函数求水仙花数

到底哪里错啦?输出来的数为啥是155?我真的看不出来了,请各位帮忙解答。

img

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-17 18:23
    关注

    【以下回答由 GPT 生成】

    #include <stdio.h>
    
    int isArmstrong(int num) {
        int originalNum, remainder, result = 0, n = 0;
    
        originalNum = num;
    
        // 计算数字的位数
        while (originalNum != 0) {
            originalNum /= 10;
            ++n;
        }
    
        originalNum = num;
    
        // 检查是否为水仙花数
        while (originalNum != 0) {
            remainder = originalNum%10;
            result += pow(remainder, n);
            originalNum /= 10;
        }
    
        if (result == num)
            return 1; // 是水仙花数
        else
            return 0; // 不是水仙花数
    }
    
    int main() {
        int n;
        printf("请输入一个整数:");
        scanf("%d", &n);
    
        if (isArmstrong(n)) {
            printf("%d是水仙花数", n);
        } else {
            printf("%d不是水仙花数", n);
        }
    
        return 0;
    }
    

    这里的修复方法涉及到修改isArmstrong函数,这个函数需要实现计算一个整数是否为水仙花数。在给出的代码中,我加入了计算原始数字的位数的代码,并使用pow函数计算了水仙花数的判定条件。希望这个修复可以解决你的问题。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月17日