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
相关产品推荐
相关产品推荐

