也许这是一个简单的问题。我刚开始独自学习C。 有一个断点 sumOfDigits函数中的“ if”。 但是我不知道为什么它是一个断点...
#include <stdio.h>
int sumOfDigits(int);
int main(int argc, const char * argv[]) {
int N;
scanf("%d", &N);
N = sumOfDigits(N);
printf("%d", N);
return 0;
}
int sumOfDigits (int num)
{
if (num<10)
return num;
else
{
num = sumOfDigits(num)/10;
return num + num%10;
}
}
它像这样显示我。
线程1:断点1.1
答案 0 :(得分:0)
更改
num = sumOfDigits(num)/10;
到
num = sumOfDigits(num/10);
示例中的num变量没有减少,该函数将自行调用直到内存用完,并且您将遇到分段错误错误。
答案 1 :(得分:-1)
我认为您已经在IDE中设置了一个断点。 而且我认为您缺少很多括号。
int sumOfDigits (int num)
{
if (num<10) {
return num;
} else {
num = sumOfDigits(num)/10;
}
return num + num%10;
}