逆序的三位数,请问哪里错了 c语言

img


img


🙏🙏请问哪里错了
题目内容:
逆序的三位数:
程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入要取地址

scanf("%d", &a);

【以下回答由 GPT 生成】

问题的错误出现在代码的逻辑上。当输入的数字含有结尾的0时,输出不应带有前导的0。但是在代码中,没有处理这种情况,导致输出的结果中会带有前导的0。我将给出一个修正后的代码。

#include <stdio.h>

int main() {
    int num;
    printf("请输入一个三位数:");
    scanf("%d", &num);

    int reverse_num = 0;
    while (num != 0) {
        int digit = num % 10;
        reverse_num = reverse_num * 10 + digit;
        num /= 10;
    }

    printf("逆序的数字为:%d\n", reverse_num);

    return 0;
}

在修正后的代码中,我添加了一个变量digit来存储每一位的数字,然后将其加到reverse_num中。这样就可以确保不会输出带有前导的0的结果。



【相关推荐】



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