从m个数中取出n个数,递归实现,写的有点乱,。。。
#include"stdio.h"
void
fun(int nn,int *n,int t,int m,int *s,int
x)
{
int i;
static int
count=0;
if(t==m)
{
count++;
printf("%d
",count);
for(i=0;i
printf("%d",s[i]);
putchar('\n');
}
else
{
for(i=x;i
{
s[t]=n[i];//t控制s保存的下标
fun(nn,n,t+1,m,s,i+1);//x控制当前选取元素的下标
}
}
}
void
main()
{
int
n[7]={1,2,3,4,5,6,7},m=3,nn=7;//从nn个数中取出m个数
int s[3];
fun(nn,n,0,m,s,0);
}