用C语言编写从1-11数中随即抽出5个不重复的数进行组合 有多少组合?

如题所述

#include <stdio.h>
#define true 1
#define false 0

int comob(int p[],int len,int n)//返回下个组合
{
int i,j,k=0;
for(i=n-1; i>=0; i--)
{
if((p[i]+n-i)<len)
{
p[i]++;
for(j=i+1; j<n; j++)p[j]=p[j-1]+1;
return true;
}
}
return false;
}
int main()
{
int a[]= {0,1,2,3,4,5,6,7,8,9,10};
int i,sum=0;
do
{
for(i=0; i<5; i++)printf("%d ",a[i]+1);
printf("\n");
sum++;
}
while(comob(a,11,5));
printf("%d\n",sum);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-08
//(11*10*9*8*7)/5!
#include<stdio.h>
void main()
{
printf("%d\n",(11*10*9*8*7)/(5*4*3*2*1));
}
第2个回答  2011-02-09
五个数个不相同:

#include "stdio.h"
main()
{
int a,b,c,d,e;
for(a=1;a<=23;a++)
for(b=a+1;b<=23;b++)
for(c=b+1;c<=23;c++)
for(d=c+1;d<=23;d++)
for(e=d+1;e<=23;e++)
if(a+b+c+d+e==23)
printf("%d %d %d %d %d\n",a,b,c,d,e);
}

五个数中可以有相同的数:

#include "stdio.h"
main()
{
int a,b,c,d,e;
for(a=1;a<=23;a++)
for(b=a;b<=23;b++)
for(c=b;c<=23;c++)
for(d=c;d<=23;d++)
for(e=d;e<=23;e++)
if(a+b+c+d+e==23)
printf("%d %d %d %d %d\n",a,b,c,d,e);
}

记得选取最佳答案!!!
相似回答