我刚刚制作了一个实现二项式函数的程序(n!/k!*(n-k)!)
。
我可以毫无问题地编译我的程序,但是当我扫描 2 int(n 和 k)时,它显示“浮点异常”。
我尝试了很多方法来解决它,但我找不到问题,因为我不擅长 c 编程:( 我正在学习。有人可以帮助我吗?非常感谢。
#include <stdio.h>
#include <stdlib.h>
int factorial( int n ){
int result;
if( n == 0 ){
result = 0;
} else {
result = n * factorial((n - 1));
}
return result;
}
char *stringa_binomiale(int n, int k){
char *s;
s=malloc(sizeof(char)*20);
int b;
b = factorial(n)/(factorial(k)*factorial(n-k));
sprintf(s,"%i su %i fa %i",n ,k ,b);
return s;
}
int main (void){
int n;
int k;
char *s;
s=malloc(sizeof(char)*20);
printf("n:");
scanf("%i",&n);
printf("k:");
scanf("%i",&k);
s= stringa_binomiale(n,k);
printf("%s \n", stringa_binomiale(n, k));
free(s);
return 0;
}