Посмотрите, когда вы вызываете rCountZeros2()
, я предполагаю, что значение в переменной result не равно нулю. Это может быть какое-то мусорное значение или какое-то другое значение из предыдущих вычислений. Однако, с предоставленными вами деталями трудно дать точный ответ.
Пожалуйста, попробуйте следующую автономную программу, я получил правильный ответ, используя ваш код
void rCountZeros2(int num, int *result)
{
if (num==0)
return;
else
{
if (num%10==0){
(*result)++;
}
rCountZeros2(num/10, result);
}
}
int main()
{
int result = 0;
int num=12300000;
rCountZeros2(num, &result);
printf("number of zeros in %d = %d",num ,result);
}