Как я могу исправить эту простую ошибку кода в linux?
Сейчас я практикую использование Vim в Linux.
Я сделал такой простой код
когда я ставлю -1 и 0, это работает. они возвращают 0 и 1.
Однако, когда я поставил положительные целочисленные значения на n, это не сработало.
Я попытался выяснить причину, чтобы использовать gdb
но он просто сказал Вот так :
Программа получила сигнал SIGSEGV, ошибка сегментации.
0x0000000000400620 в факториале ()
Что не так с моим кодом?? Я даже не могу понять, в чем тут дело.
Почему GDB не заметила, какая строка получила ошибку?
Что я уже пробовал:
#include <stdio.h> int factorial(int n){ if (n<0) { return 0; } else if (n==0) { return 1; } else { return n * factorial(n); } } int main(void){ int n = 0; printf("Put n value : "); scanf("%d", &n) printf("%d! = %d\n", n, factorial(n)); return 0; }