c语言全组合函数 c语言 组合

大一C语言(求阶乘用函数实现)求组合数

有两个问题,一个是fact()函数里的p应该定义成double类型,第二个是printf()不应该用%d输出double类型的值,应该用%.0f或者%.0lf

创新互联专注骨干网络服务器租用十多年,服务更有保障!服务器租用,成都联通服务器托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。

顺便说一句,这个问题只要定义fact()一个函数就够了,输出的时候用

printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)));

另外两个函数删掉就可以了。

C语言编写一个嵌套函数计算组合数

#includestdio.h

int c(int n,int m){

int i,s=1;

for(i=m;i=m-n+1;i--)s*=i;

for(i=n;i=2;i--)s/=i;

return s;}

int f(int k,int m,int n){

int i,s=0;

for(i=k;i=k+n;i++)s+=c(i,m);

return s;}

int main(){

int k,m,n;

printf("输入k,m,n\n");

scanf("%d%d%d",k,m,n);

printf("%d",f(k,m,n));

return 0;}

关于c语言 组合函数的问题。

#include stdio.h

int cc(int a[], int n, int k, int t)

{

int b[128];

int i, j, m;

if (n == k)

{

for(i=0; in; i++)

{

printf("%8d", a[i]);

}

printf("\n");

return 0;

}

for (m=0; mt; m++)

{

j = 0;

for (i=0; in; i++)

{

if (i == m)

continue;

b[j++] = a[i];

}

cc(b, n-1, k, m);

}

return 0;

}

int main ()

{

int n, k;

int i;

int s[128];

printf("请输入n:");

scanf("%d", n);

printf("请输入k:");

scanf("%d", k);

for (i=0; in; i++)

s[i] = i;

cc(s, n, k, n);

return 0;

}

你自己再改改,我是写到标准输出了,你改成写到数阻里就可以了。


分享题目:c语言全组合函数 c语言 组合
分享URL:http://pwwzsj.com/article/dodihci.html