C语言编程10选6全组合并且满足6个数字和问题用C语言同时满足下列2个条件就输出要有源代码(1)假定从1-10这10个数字中任选6个全组合输出(2)当每行6个数字相加和为50就输出
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 14:14:48
C语言编程10选6全组合并且满足6个数字和问题用C语言同时满足下列2个条件就输出要有源代码(1)假定从1-10这10个数字中任选6个全组合输出(2)当每行6个数字相加和为50就输出
C语言编程10选6全组合并且满足6个数字和问题
用C语言同时满足下列2个条件就输出要有源代码
(1)假定从1-10这10个数字中任选6个全组合输出
(2)当每行6个数字相加和为50就输出
C语言编程10选6全组合并且满足6个数字和问题用C语言同时满足下列2个条件就输出要有源代码(1)假定从1-10这10个数字中任选6个全组合输出(2)当每行6个数字相加和为50就输出
代码如下:
#include <stdio.h>
//要求六个数字相加的和
#define AIM 39
int main(){
int number[10]; //用来存放1到10
int su[6];
int i,sum,j=0,k,flag=1;
for(i=0;i<10;i++)
number[i]=i+1;
for(i=0;i<6;i++)
su[i]=0;
for(su[0]=0;su[0]<10;su[0]++)
for(su[1]=0;su[1]<10;su[1]++)
for(su[2]=0;su[2]<10;su[2]++)
for(su[3]=0;su[3]<10;su[3]++)
for(su[4]=0;su[4]<10;su[4]++)
for(su[5]=0;su[5]<10;su[5]++)
{
//j++;
//printf("%d\t",j);
sum=0;
for(i=0;i<6;i++)
sum+=number[su[i]];
//printf("%d\t",sum);
//如果相加的和满足要求则输出组合
if(sum==AIM){
//判断六个数字之中是否有重复的,并且排除排列顺序不同的组合
for(k=0;k<6;k++)
for(i=k+1;i<6;i++)
if(number[su[i]]<=number[su[k]])
flag=0;
if(flag==1){
for(i=0;i<6;i++)
printf("%d ",number[su[i]]);
j++;
printf("\n");
}
flag=1;
}
}
printf("总共有%d个满足要求的组合\n",j);
return 0;
}
其中宏定义#define AIM后面的数字为需要的总和
本代码选出的组合中数字不能重复
和为39的组合运行结果如下: