求整数的各位数字之和

问题遇到的现象和发生背景

求整数的各位数字之和
编译器vs2022
(scanf没有错误)
想写个自定义函数实现求和

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
int shuzihe(int y);

int main()
{
    int n;
    scanf_s("%d", &n);
    printf("%d", shuzihe(n));


    return 0;
}
int shuzihe(int y)
{
    int result;
    if (y == 0)
        result = 0;
    else if (y % 10 != 0)
        result = shuzihe(y);
    return result;
}


运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的效果

递归这样写不死循环才怪?想用变量的话这样:

img



#include<stdio.h>
int shuzihe(int y);
 
int main()
{
    int n;
    scanf("%d", &n);
    printf("%d", shuzihe(n));
 
 
    return 0;
}
int shuzihe(int y)
{
       if (y == 0) {
        return 0;
    }
    return y % 10 + shuzihe(y / 10);
}
 
 

递归里y没有变化,死循环