//---------------------------------------------------------------------------
#include <stdio.h>
void compages(int *a,int size_a,int *subset,int need,const int size_sub)
{
int i,sum=0;
if (!need) {
for (i = 0; i < size_sub; i++)
{
printf("%d ",subset[i]);
sum+=subset[i];
}
printf(": %d\n",sum);
}
else {
for (i=0; i<size_a; i++) {
subset[size_sub-need]=a[i];
compages(a+i+1,size_a-i-1,subset,need-1,size_sub);
}
}
}
int main(int argc, char* argv[])
{
int i,s[]={1,2,5},a[3];
for (i=1; i<=3; i++) compages(s,3,a,i,i);
return 0;
}
//---------------------------------------------------------------------------
温馨提示:答案为网友推荐,仅供参考