您的位置:首页 > 编程语言 > C语言/C++

C语言 12个球称3次 找出其中一个坏球

2016-10-06 23:31 232 查看
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>

/*
12个球 其中有一个球是坏球,坏球特征:可能较重,可能较轻,但是重量不与好球相等
请用if else  模拟天枰  称3次 找出这个坏球
*/

int main()
{
time_t ts;
unsigned int num = (unsigned int)time(&ts);
srand(num);
int a[12] = {-1};
int temp = rand() % 13;
int number = rand() % 3;
int ret = 1;
for (int i = 0; i < 12; i++)     //生产随机数
{
a[i] = rand() % 1 + 1;
}
while (ret)                      //生成坏球随机数
{
if (number != 1)
{
a[temp] = number;
ret = 0;
}
else
{
number = rand() % 3;
}
}
int x = 0;
int y = 0;
int z = 0;
for (int i = 0, j = 12 / 3, k = (12 / 3) * 2; i < 12 / 3; i++, k++, j++)    //分组
{
x += a[i];   // A组
y += a[j];   // B组
z += a[k];   // C组
}
printf("%d,%d,%d\n", x, y, z);
for (int i = 0; i < 12; i++)
{
printf("%d  ", a[i]);
}
printf("\n");

if (x > y)        //1 2 3 4 > 5 6 7 8    假设 A组 大于 B组
{
x -= (a[2] + a[3]);
x += a[4] + a[5] + a[6];   // X组 1  2  5   6   7
y -= a[4] + a[5] + a[6];
y += z;                   // Y组  8  9  10  11  12
if (x > y)     //分组后 X > Y 的话 说明 1 2为重球  或者 8号为轻球
{
if (a[0] > a[1])
{
printf("1号球是重球  重量为%d\n", a[0]);
}
else if (a[0] < a[1])
{
printf("2号球是重球,重量为%d\n", a[1]);
}
else
{
printf("8号求是轻球,重量为%d\n", a[7]);
}
}
else if (x == y)  //如果相等 说明 问题出在 3 4号球 为重球
{
if (a[2] > a[3])
{
printf("3号球是重球 重量为:%d\n", a[2]);
}
else
{
printf("4号球是重球 重量为:%d\n", a[3]);
}
}
else       //如果 X < Y 说明 5 6 7 是轻球
{
if (a[4] == a[5])
{
printf("7号球是轻球 重量为:%d\n", a[6]);
}
else if (a[5] == a[6])
{
printf("5号球是轻球 重量为:%d\n", a[4]);
}
else
{
printf("6号球是轻球 重量为:%d\n", a[5]);

}
}
}
else if (x < y)                    //1 2 3 4 < 5 6 7 8    不多说了 和上面的一样
{
x -= (a[2] + a[3]);
x += a[4] + a[5] + a[6];   // X组 1  2  5   6   7
y -= a[4] + a[5] + a[6];
y += z;                   // Y组  8  9  10  11  12

if (x > y)
{
if (a[4] > a[5])
{
printf("5号球是重球 重量为%d\n", a[4]);
}
else if (a[4] < a[5])
{
printf("6号球是重球 重量为%d\n", a[5]);
}
else
{
printf("7号球轻球 重量为%d\n", a[6]);
}
}
else if (x < y)
{
if (a[0] > a[1])
{
printf("2号球是轻球 重量为:%d\n", a[1]);
}
else if (a[0] < a[1])
{
printf("1号球是轻球 重量为%d\n", a[0]);
}
else
{
printf("8号球是重球 重量为:%d\n", a[7]);
}
}
else
{
if (a[2] > a[3])
{
printf("4号球是轻球 重量为:%d\n", a[3]);
}
else
{
printf("3号球是轻球 重量为:%d\n", a[2]);
}
}
}
else
{
int text1 = 0, text2 = 0;
text1 = a[0] + a[1] + a[2];
text2 = a[8] + a[9] + a[10];
if (text1 > text2)
{
if (a[8] == a[9])
{
printf("11号球是轻球 重量为%d\n", a[10]);
}
else if (a[8] == a[11])
{
printf("10号球是轻球 重量为%d\n", a[9]);
}
else
{
printf("9号球是轻球 重量为%d\n", a[8]);
}
}
else if(text1 == text2)
{
if (a[0] > a[11])
{
printf("12号球是轻球 重量为%d\n", a[11]);
}
else
{
printf("12号球是重球 重量为%d\n", a[11]);
}
}
else
{
if (a[8] == a[9])
{
printf("11号球是重球 重量为%d\n", a[10]);
}
else if (a[8] == a[11])
{
printf("10号球是重球 重量为%d\n", a[9]);
}
else
{
printf("9号球是重球 重量为%d\n", a[8]);
}
}

}

system("pause");

return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言
相关文章推荐