数组的组合
我从先改一下把数组a[5]={1,2,3,4,5};
我输入2 应该打印
1 2
1 3
1 4
...
4 5
我输入3 打印
1 2 3
1 2 4
1 2 5
....
3 4 5
我输入4 打印
1 2 3 4
1 2 3 5
1 3 4 5
...
2 3 4 5
依次类推(如果数组有10个数呢)
我的意思就是这样
如何实现
[ 本帖最后由 yxiangyxiang 于 2012-2-20 12:56 编辑 ]
程序代码:#include <stdio.h>
int data[100] = {5,4,3,2,1};
bool foot[100] = {0};
int cool = 0;
void com(int n,int k,int mem[],int depth,int begin,int pos)
{
int i,j;
if(k == depth)
{
for(i = 0;i<k;i++)
printf("%d ",mem[i]);
cool++;
printf("\n");
return ;
}
for(i = pos;i<n;i++)
{
if(!foot[i])
{
foot[i] = true;
mem[begin] = data[i];
com(n,k,mem,depth+1,begin+1,i+1);
foot[i] = false;
}
}
}
int main()
{
int mem[100] = {0};
com(5,3,mem,0,0,0);
return 0;
}