Я делаю один из простых программных C, сумма цифр 5-значного числа. Хотя я сделал это с помощью простой функции, но мне нужно сделать это с рекурсией. Я читал много решение в сети относительно этой проблемы с использованием рекурсии и реализовало один из моих. Но это дает ошибку, и я не могу определить, какая сетка я делаю в своем algo.Рекурсия, возможная ошибка в algo
#include<stdio.h>
int sum5(int x); //function for sum of digits of 5 digit number
int main()
{
int x;
int result;
printf("Enter a 5 digit number : ");
scanf("%d",&x);
printf("Number entered by you is %d",x);
result = sum5(x);
printf("Sum of digits of 5 digit number is = %d",&result);
return 0;
}
int sum5(int x)
{
int r;
int sum=0;
if(x!=0){
r=x%10;
sum=sum+r;
x=x-r; //doing this so that 0 come in the last and on diving it by 10, one digit will be removed.
sum5(x/10);
}
return sum;
}
но после его выполнения я получаю неправильный результат. Он сбрасывает некоторые анонимные значения на выходе.
эта часть бесполезна x = x-r; поскольку то, что вы отправили впоследствии, в любом случае удалит самую цифру справа. он не будет работать, поскольку никто не получит возвращаемое значение из вызова рекурсии. – Infested