题目描述: 编写一个函数Fact,该函数用于计算并返回n的
阶乘;然后再编写一个函数Pnm,该函数调用函数Fact计算并返回从n个不同的元素中任
取m个元素(m≤n)的所有排列的个数(排列数)。在main函数中,输入两个正整数n
和m,调用函数Fact和Pnm,计算从n个不同元素中取出m个元素(m≤n)的所有组合
的个数(组合数)。
输出案例:输入 输出
7 2 21
这个哪里错了
#include
double Fact (int n);
double Pnm (int n,int m );
int main (){
double cnm;
int n,m;
scanf ("%d%d", &n, &m);
cnm=Pnm(n,m)/Fact (m) ;
printf ("%.0lf", cnm);
return 0;
}
double Pnm(int n, int m){
double p;
p=Fact(n-m)/Fact(n);
}
double Fact (int n)
{
int i;
double f=1.0;
for (i=1; i<=n; i++)
f=f*i;
}
少了return 吧
#include <stdio.h>
double Fact (int n);
double Pnm (int n,int m );
int main (){
double cnm;
int n,m;
scanf ("%d%d", &n, &m);
cnm=Pnm(n,m)/Fact (m) ;
printf ("%.0lf", cnm);
return 0;
}
double Pnm(int n, int m){
return Fact(n)/Fact(n-m);
}
double Fact (int n)
{
int i;
double f=1.0;
for (i=1; i<=n; i++)
f=f*i;
return f;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!