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

C语言自定义reverse数字反转函数调用后输出原值问题排查

问题原因
  • C语言默认采用值传递逻辑,调用reverse(x)时仅会将main函数中x的数值拷贝给函数形参,函数内部对形参的修改不会作用于main里的原始x变量。
  • reverse函数的反转结果通过return语句返回,现有代码调用reverse时没有接收返回值,无法获取计算后的反转结果。
修复代码

直接修改main函数中的调用与输出逻辑即可,不需要改动reverse的核心实现:

unsigned long reverse(unsigned int x)
{
    int current, newX = 0;
    // 原代码中未使用的i变量已删除,避免编译警告
    while (x != 0)
    {
        current = x % 10;
        x = x / 10;
        newX = newX * 10 + current;
    }
    return newX;
}

int main()
{
    unsigned int x;
    printf("Enter number\n");
    scanf_s("%d", &x);
    // 接收reverse返回的反转结果
    unsigned long res = reverse(x);
    // 输出反转结果,%lu对应unsigned long类型避免格式不匹配
    printf("%lu", res);
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:09:02