关于排列组合问题 50

有10个数字,从里面任取5个数字组合,请能人写出这个问题的C程序,补充一下,想要这样的一个程序:条件是1到10,10个数,要求,得到所有任意5个数组成的组合,能列出所有的... 有10个数字,从里面任取5个数字组合,请能人写出这个问题的C程序,
补充一下,想要这样的一个程序:条件是1到10,10个数,要求,得到所有任意5个数组成的组合,能列出所有的组合,组合成的数字没有顺序限制,(比如说,1,2,3,4,5和2,1,4,3,5或4,1,5,2,3..........是一个组合),明白吗,就是组合成的确数组只要数字一样就算是一个组合
展开
 我来答
wyaccent
2009-04-16 · TA获得超过155个赞
知道答主
回答量:162
采纳率:0%
帮助的人:0
展开全部
C10,5=10!/5!/(10-5)!

!表示阶乘 5!=1*2*3*4*5
三个for循环搞定

main ()
{
int i,iOut,itmp,itmp1,itmp2;

itmp=1;
for (i=1;i<=10;i++) //10的阶乘
itmp=itmp * i;

itmp1=1;
for (i=1;i<=5;i++) //5的阶乘
itmp1=itmp1 * i;

itmp2=1;
for (i=1;i<=10-5;i++) //10-5的阶乘
itmp2=itmp2 * i;

iOut = itmp/itmp1/itmp2; 结果
}
匿名用户
2009-04-16
展开全部
如果你要求组合的数目的话
就是下面这个程序,已经调试过了,是对的

#include<stdio.h>
void main()
{
int i,n=1,r=1;
for(i=1;i<11;i++) n*=i;
for(i=1;i<6;i++) r*=i;

printf("组合数:%d",n/(r*r));

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mt_k
2009-04-16
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
你的意思是得到任意5个数字的组合么?

#define NUM_CNT 10
#define NUM_SEL 5

int nums [NUM_CNT];

void get_numbers (void)
{
int i;

for (i = 0; i < NUM_CNT; i++)
{
printf("input %dth number:", i+1);
scanf("%d", &nums[i]);
}
}

void select_numbers (void)
{
int i, sel;
char str[12];
char result[1024] = {0};

for (i = 0; i < NUM_SEL; i++)
{
sel = rand()%NUM_CNT;
itoa(nums[sel], str, 10);
strcat(result, str);
}

printf("select %d numbers and the result is %s\n", NUM_SEL, result);
}

void main (void)
{
get_numbers();
select_numbers();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式