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

C语言实现各位数求和递归函数运行无输出问题求助

问题原因

  • 递归函数dsum没有设置终止条件:当参数n逐次除以10变为0后,函数仍会继续递归调用,最终触发栈溢出导致程序异常终止,没有输出结果。
  • 缺少头文件引入:代码中调用了标准库函数printf,但没有引入<stdio.h>头文件,部分编译器下会出现编译错误或者未定义行为。

修复后代码

#include <stdio.h>
int dsum(int n)
{
    // 新增递归终止条件:n为0时不再递归,直接返回0
    if (n == 0) {
        return 0;
    }
    int r = n % 10;
    return r + dsum(n / 10);
}
int main()
{
    int a = dsum(12345);
    printf("%d",a);
    return 0;
}

修复说明

递归终止条件触发时,会停止向下递归逐层返回计算结果,最终计算12345各位和为15,程序运行后会正常输出15。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:27:06