Рекурсия с использованием функции main () [закрыто]
Я пишу программу для расчета факториала с использованием рекурсииmain
() функция.
/* Print factorial */
#include
#include
static char **p;
int main(int argc, char **argv)
{
int n, rv;
if (argc < 2) {
printf("Usage: a.out \n");
exit(-1);
}
n = atoi(argv[1]);
if (!n) {
rv = 0;
} else {
if (n == 1) {
rv = 1;
} else {
n = n - 1;
**p = n;
main(2, p);
}
}
printf("%d\n", rv);
return 0;
}
Программа компилируется с использованиемgcc
но при исполнении я получаю ошибку сегментации в**p = n
, Может кто-нибудь помочь мне изменить вышеуказанную программу, чтобы получить правильный результат. Кроме того, какова логика, чтобы захватить правильноrv
значение между последовательными рекурсивными вызовами вmain
()?