我在试着理解这里的代码。我试着去理解它已经有一段时间了,因为我不能完全理解它,所以我向你求助。

#include<stdio.h>
int sumdig(int);
int main()
{
  int a, b;
  a = sumdig(123);
  b = sumdig(123);
  printf("%d, %d\n", a, b);
  return 0;
}

int sumdig(int n)
{
  int s, d;
  if(n!=0)
   {
     d = n%10;
     n = n/10;
     s = d+sumdig(n);
   }
  else
    return 0;
return s;
}

我可以理解,数字将继续传递函数,直到它达到0,然后它返回1,因为0==0,但在它返回3并以6结束之后。我不明白记得我是新来的C

最佳答案

第一轮,with123n % 10将计算为3n / 10将计算为12,因此它将返回3 + sumdig(12)sumdig(12)将以同样的方式返回2 + sumdig(1)sumdig(1)将返回1 + sumdig(0)sumdig(0)将返回0,此时它将停止。所以总的来说,它将返回3 + 2 + 1,这是123中的数字之和。

08-16 02:34