永发信息网

c语言西瓜问题

答案:2  悬赏:0  手机版
解决时间 2021-03-20 05:56
c语言西瓜问题
最佳答案
#include
int main()
{
int a[12]={98,93,57,64,50,82,18,34,69,56,16,61},sum = 0,b,c,d,e,f,g,i;
for(i = 0; i < 12; i++)
sum = sum + a[i];
for(b = 0; b < 6; b++)
{
for(c = b + 1; c < 7; c++)
{
for(d = c + 1; d < 8; d++)
{
for(e = d + 1; e < 9; e++)
{
for(f = e + 1; f < 10; f++)
{
for(g = f + 1; g < 11; g++)
{
if(a[b] + a[c] + a[d] + a[e] + a[f] + a[g] == sum/2)
{
printf("%d %d %d %d %d %d\n",a[b],a[c],a[d],a[e],a[f],a[g]);
for(i = 0; i < 12; i++)
{
if(i != b && i != c && i != d && i != e && i != f && i != g)
printf("%d ",a[i]);
}
printf("\n\n");
}
}
}
}
}
}
}
return 0;
}
全部回答
其实想法相对好理解 就是12个数中任意选取其中6个数相加等于总和的一半,然后筛选出来,难点是如何穷举组合。
我大概写了个:(结果得到6组,实际上第一堆和第二堆位置颠倒,本质只有3组,可以看下)
#include
#include
void zuhe(int a[],int n,int m,int s)//从n个元素的数组a中,取m个元素的组合
{
int index,i,j,x=0,p[6],q[6];
int s2,l=1;
int item1[6],item2[6];
index=0;
p[index]=0;
while(1)
{
if(p[index]>=n)
{
if(index==0)
{
break;
}
index--;
p[index]++;
}
else if(index==m-1)//满足12选6组合
{
s2=0;
x=0;
for(i=0;i if(s2==s)//满足平分,得出第一堆p[6]
{
for(i=0;i<12;i++)
{
for(j=0;j if(i==p[j])break;
if(j==m)q[x++]=i;//筛选第二堆q[6]
}
printf("%d.",l);
printf("第一堆:");
for(i=0;i printf(" ");
printf("第二堆:");
for(i=0;i printf("\n");
l++;
}
p[index]++;
}
else
{
index++;
p[index]=p[index-1]+1;
}
}
}
main()
{
int i,s=0;
int items[12]={98,93,57,64,50,82,18,34,69,56,16,61};
for(i=0;i<12;i++)s+=items[i];
s/=2;//算出平分值
zuhe(items,12,6,s);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么退出游戏全屏
龟壳竹对房间有什么好处
河南省濮阳市公安厅通缉令名单
请问在Robin Thicke的Blurred lines这首歌的M
端午节有几种叫法?
家里的老海尔电视突然屏变绿了
梦幻变异马面鬼怎么杀
登封到杭州开车有多少公里?
橱柜有必要做高低台吗
哗字的笔画顺序
5.14×9+5.14的简便计算
哪些人可享受养老津贴
吉祥路/凯旋路(路口)地址在什么地方,想过去
三个字的古风情侣网名
市面上的2K屏手机,哪个更好些
推荐资讯
经常食用红著粉会上火吗?
年轻的时候脸上不长痘痘,年纪大了会不会有很
人间的人间的反义词
用have a better idea造句
汪汪队第一季、第二季(国语版)百度云链接
形容潇洒的诗句
如何调整汽车怠速?
CAD石材效果图怎么做出来
老少三代5口人,买多大的冰箱比较合适???
贵安新区离婚证在哪办
喝酒导致死亡 陪酒的应该追究什么责任
眼角的脂肪粒被我剪掉了不停的流血怎么止血
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?