#include
#define m 10 //相加之和不超过的数据
#define n 9 //数值的个数
typedef struct
{
int num; //存储数值
int boolean; //凑数数值是否已经输出 .是0则未输出,是1则已经输出
}NUM; //存储数据的数据结构
NUM aa[n]; //存储数值
static int count=1;//存储输出的组数据
void FUN() //递归函数体
{
int i,temp=0;
for(i=0;i
{
temp=temp+aa[i].boolean; //把所有的boolean值加起来,如果总和小于n则有未输出的数
}
if(temp
{
temp=0; //清空缓存
printf("第%d组:",count++);
for(i=0;i
{
if(temp+aa[i].num<=m&&aa[i].boolean==0)
{
temp=temp+aa[i].num;
printf("%d ",aa[i].num);
aa[i].boolean=1;
}
else continue;
}
printf("\n");
}
else return; //如果数据都已经输出,退出递归
FUN();
}
void INPUT()
{
int i;
printf("*******************************本人已死##有事烧纸******************************\n");
printf("-------------------------------------------------------------QQ:54482733-------\n");
printf("请输入你要求分组的数据:\n");
for(i=0;i
{
scanf("%d",&aa[i].num);
aa[i].boolean=0;
getchar();
}
}
main()
{
INPUT();
FUN();
}附图: