#include stdio.h
创新互联专注于肥乡网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供肥乡营销型网站建设,肥乡网站制作、肥乡网页设计、肥乡网站官网定制、微信小程序服务,打造肥乡网络公司原创品牌,更为您提供肥乡网站排名全网营销落地服务。
void main()
{
void choose(int a,int b);
int a,b,c,d;
printf("请输入两个整数,以0,0结束\n");
scanf("%d,%d",a,b);
scanf("%d,%d",c,d);
if(c==0d==0)
choose(a,b);
}
void choose(int a,int b)
{
if(ba)
{
printf("error!");
}
else
{
int fenmu=b,fenzi=a;
for(int i=a-1;ia-b;i--)
fenzi*=i;
for(int j=b-1;j1;j--)
fenmu*=j;
int temp;
temp=fenzi/fenmu;
printf("%d",temp);
}
}
#includestdio.h
int fun(int n)
{ int i=1;
for(i=1;i=n;i++)
n=n*i;
return n;
}
void main()
{
int i=5,j=8,k=3;
printf("\nThis is(5!+8!)/3!= %d ",(fun(i)+fun(j))/fun(3));
} //望采纳
有两个问题,一个是fact()函数里的p应该定义成double类型,第二个是printf()不应该用%d输出double类型的值,应该用%.0f或者%.0lf
顺便说一句,这个问题只要定义fact()一个函数就够了,输出的时候用
printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)));
另外两个函数删掉就可以了。
实现的算法很多, 下面给出一个不需要递归的算法; 需要设计两个函数。
unsigned long factorial (unsigned long n);
long long perm(unsigned long m, unsigned long n);
unsigned long factorial (unsigned long n)
{
unsigned long value = (n == 0) ? 1 : n;
while( n = 2 )
value *= --n;
return value;
}
long long perm(unsigned long m, unsigned long n)
{
if (m n)
return -1;
else
return (unsigned long) (factorial(n)/factorial(n-m));
}
只为了mn就要返回-1, 有点浪费啊~~~
注意求值范围, 如果需要可以int64扩展。。。
当前文章:c语言调用函数求组合数 c语言函数调用例子数组
网址分享:https://www.cdcxhl.com/article12/ddiisgc.html
成都网站建设公司_创新互联,为您提供网页设计公司、标签优化、用户体验、动态网站、微信公众号、营销型网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联