#include <stdio.h>
#define N 100
int a[N],end;
void zuhe(int m,int k)//从m个元素中取出k个元素的组合
{
int i,j;
for(i=m;i>=k;i--)
{
a[k]=i;//最后一个位置的元素可以取m,m-1,m-2.....k
if(k>1) zuhe(i-1,k-1);//递归调用
else
{
for(j=1;j<=end;j++)
printf("%d ",a[j]);
printf("\n");
}
}
}
void main()
{
int n,m;
printf("请输入Cn,m中n与m的值:");
scanf("%d%d",&n,&m);
if(n>100)
printf("数字太大了!");
end=m;
zuhe(n,m);
}
可以参考这个算法得到你要的结果!