急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。

其中的Cnm意思为,n在下m在上!各位帮帮忙啊

//用递归函数处理
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long int fac(int n)
{
long int sum=0;
if(n==1)
sum=1;
else
sum=n*fac(n-1);
return sum;
}
void main()
{
long int c=0;
int n,m;
printf("please input n=");
scanf("%d",&n);
printf("please input m=");
scanf("%d",&m);
if((n<0)||(m<0)||((n-m)<0))
{
printf("input num is error\n");
}
else
{
c=fac(n)/fac(m)/fac(n-m);
printf("%ld\n",c);
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-12-19
#include <stdio.h>

int jiecheng(int x)
{
int jc = x;
if(x > 1)
{
for(int i = x- 1; i >0; i --)
{
jc *= i;
}
}
return jc;
}

void main()
{
int n, m;
scanf("%d,%d", &n, &m);
int Cnm = jiecheng(n) / (jiecheng(m)*jiecheng(n-m));
printf("Cnm = %d", Cnm);
}
第2个回答  2006-12-19
long fac(int n)
{
long f;
for(;n>0;n++)
{
f *= n;
}
return f;
}

void main()
{
long c;
int n,m;
printf("please input n,m:");
scanf("%d,%d",&n,&m);
c = fac(n)/(fac(m)*fac(n-m));
printf("C(%d,%d) = %d\n",n,m,c);
}
第3个回答  2006-12-19
好久没有用c了希望没有错

long fac(long n){
long r=1;
for(int i=1;i<=n;i++){
r*=i;
}
return r;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网