Пожалуйста, помогите мне здесь. Программа должна рекурсивно выяснить комбинацию двух чисел. nCr = n! / (r! (n-r)!). Я получаю это сообщение об ошибке при компиляции в GCC.
Вот что показывает терминал:
Введите два числа:
8
4
Ошибка сегментации
(Программа завершена с кодом: 139)
Код указан здесь:
#include<stdio.h>
float nCr(float, float, float);
int main()
{
float a, b, c;
printf("Enter two numbers: \n");
scanf("%f%f", &a, &b);
c = nCr(a, b, a-b);
printf("\n%.3f", c);
return 0;
}
float nCr(float n, float r, float p)
{
if(n<1)
return (1/(p*r))*(nCr(1, r-1, p-1));
if(r<1)
return (n/(p*1))*(nCr(n-1, 1, p-1));
if(p<1)
return (n/r)*(nCr(n-1, r-1, 1));
return ( n/(p*r) )*nCr(n-1, r-1, p-1);
}