Я делаю код, который вычисляет сумму цифр факториала, мое решение было преобразовать число в строку, а затем поместить эту строку в массив.
Я пытался использовать atoi для преобразования строкового индекса в индекс массива, но это не сработало, из-за ошибки «передача аргумента 1 из« atoi »делает указатель из целого числа без приведения»
#include <string.h>
#include <stdlib.h>
int fat(int x)
{
if (x == 0 || x == 1)
{
return 1;
}
else
{
return x * fat(x-1);
}
}
int main()
{
int n, i, f=0, arr[30];
char str[30];
printf("Type the value of N: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
f = fat(i);
}
printf("%d \n", f);
sprintf(str, "%d", f);
n=0;
for (i=0;i<strlen(str);i++)
{
arr[i]=atoi(str[i]);
n=n+arr[i];
}
printf("%d", n);
}