You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言反转用户输入数字时去除输出结果末尾的0

反转数字截断末尾0实现方案

问题原因

现有代码逐位取余后直接打印,原数字末尾的0会作为反转结果的前导0输出,而整形变量存储时不会保留前导0,因此可以先计算完整反转值再统一打印,自动抹除无效前导0。

修改后代码

#include <stdio.h>
int main(void) {
    int x, s, rev = 0;
    scanf("%i", &x);
    // 兼容输入为0的场景
    if (x == 0) {
        printf("0");
        return 0;
    }
    for (int i = x; i > 0; i /= 10) {
        s = i % 10;
        rev = rev * 10 + s;
    }
    printf("%i", rev);
    return 0;
}

修改说明

  • 新增反转结果变量rev,初始值为0,逐位拼接反转数字过程中自动忽略前导0
  • 循环内取消逐位打印,改为将当前位数字拼接到rev末尾
  • 新增输入为0的兼容逻辑,避免输入0时无输出

运行示例

输入420时,循环执行逻辑:

  1. i=420,s=0,rev=0*10+0=0,i=42
  2. i=42,s=2,rev=0*10+2=2,i=4
  3. i=4,s=4,rev=2*10+4=24,i=0,循环结束
    最终打印24,符合需求。

内容的提问来源于stack exchange,提问作者codeloverfromkz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:06:02