c 语言 输入m,n(M>=n>=0)后,计算下列表达式的值并输出: m!/n!*(m-n)!用函数调用.fact()计算阶乘.m!/n!*(m-n)! 返回float 高手指点 #include main(){ int fact(int a); int m,n,q,k; scanf("%d",&m); scanf("%d"
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/01 18:52:35
c 语言 输入m,n(M>=n>=0)后,计算下列表达式的值并输出: m!/n!*(m-n)!用函数调用.fact()计算阶乘.m!/n!*(m-n)! 返回float 高手指点 #include main(){ int fact(int a); int m,n,q,k; scanf("%d",&m); scanf("%d"
c 语言 输入m,n(M>=n>=0)后,计算下列表达式的值并输出: m!/n!*(m-n)!用函数调用.fact()计算阶乘.
m!/n!*(m-n)! 返回float 高手指点
#include
main()
{
int fact(int a);
int m,n,q,k;
scanf("%d",&m);
scanf("%d",&n);
if(m>n)
{q=m-n;
float num1;
num1=fact(m);
//for(int i=m-1;i>0;i--){
// m=m*i;}
printf("%f\n",num1);
n=fact(n);
printf("%d\n",n);
q=fact(q);
printf("%d\n",q);
k=m/(n*q);
printf("%d",k);}
/*if(m==n)
{
k=0;
printf("%d",k);
}*/
}
int fact (int a)
{
float num;
for(int i=a-1;i>0;i--){
num=num*i;
}
return num;
printf("%d",num);
}
c 语言 输入m,n(M>=n>=0)后,计算下列表达式的值并输出: m!/n!*(m-n)!用函数调用.fact()计算阶乘.m!/n!*(m-n)! 返回float 高手指点 #include main(){ int fact(int a); int m,n,q,k; scanf("%d",&m); scanf("%d"
fact()错了,应该是
int fact (int a)
\x09\x09{
float num; // 没有初始化
\x09\x09for(int i=a-1;i>0;i--){ // i需要从a开始
\x09\x09 num=num*i;
\x09}\x09
return num; // 从浮点数转换成整数,损失了精度,这个在主函数中也有这个问题,不过如果数字很小,没有问题
\x09\x09 printf("%d",num);
}