(1) 有十二个球,从外观上看,大小、色彩、形状完全一样。只是在重量上,多数球(其中十一颗)是标准重量(标准重量是多少?不知道),只知道有一颗球与其余十一颗的重量不同,但不知道是偏重还是偏轻。有一只天平,没有砝码。你能用这只天平,称量三次,找出那颗重量不标准的球吗?而且要确定那颗不标准的球是轻了还是重了。
(2)
(3) 源程序代码
/************************************
12球问题
输入:12个球的重量,且只有一个球可以或轻或重
输出:其中不正常的那个球
**************************************/
#include<stdio.h>
int main()
{
int balls[12];
int i;
printf("请输入球的重量,其中0表示正常,1表示偏重,-1表示偏轻\n");
for(i=1;i<=12;i++)
{
printf("请输入第%d球的重量",i);
scanf("%d",&balls[i-1]);
}
if((balls[0]+balls[1]+balls[2]+balls[3])==(balls[4]+balls[5]+balls[6]+balls[7]))
{
if((balls[0]+balls[1]+balls[2])==(balls[8]+balls[9]+balls[10]))
{
if(balls[11]>balls[4])
{
printf("不合格的球是12且偏重");
}else
{
printf("不合格的球是12且偏轻");
}
}else if((balls[0]+balls[1]+balls[2])<(balls[8]+balls[9]+balls[10]))
{
if(balls[8]==balls[9])
{
printf("不合格的球是11且偏重");
}else if(balls[8]<balls[9])
{
printf("不合格的球是10且偏重");
}else
{
printf("不合格的球是9且偏重");
}
}else{
if(balls[8]==balls[9])
{
printf("不合格的球是11且偏轻");
}else if(balls[8]<balls[9])
{
printf("不合格的球是9且偏轻");
}else
{
printf("不合格的球是10且偏轻");
}
}
}else if((balls[0]+balls[1]+balls[2]+balls[3])>(balls[4]+balls[5]+balls[6]+balls[7]))
{
if((balls[2]+balls[3]+balls[4]+balls[5]+balls[6])==(balls[7]+balls[8]+balls[9]+balls[10]+balls[11]))
{
if(balls[0]>balls[1])
{
printf("不合格的球是1且偏重");
}else
{
printf("不合格的球是2且偏重");
}
}else if((balls[2]+balls[3]+balls[4]+balls[5]+balls[6])>(balls[7]+balls[8]+balls[9]+balls[10]+balls[11]))
{
if(balls[2]==balls[3])
{
printf("不合格的球是8且偏轻");
}else if(balls[2]>balls[3])
{
printf("不合格的球是3且偏重");
}else{
printf("不合格的球是4且偏重");
}
}else{
if(balls[4]==balls[5])
{
printf("不合格的球是7且偏轻");
}else if(balls[4]>balls[5])
{
printf("不合格的球是6且偏轻");
}else{
printf("不合格的球是5且偏轻");
}
}
}else
{
if((balls[2]+balls[3]+balls[4]+balls[5]+balls[6])==(balls[7]+balls[8]+balls[9]+balls[10]+balls[11]))
{
if(balls[0]>balls[1])
{
printf("不合格的球是2且偏轻");
}else
{
printf("不合格的球是1且偏轻");
}
}else if((balls[2]+balls[3]+balls[4]+balls[5]+balls[6])>(balls[7]+balls[8]+balls[9]+balls[10]+balls[11]))
{
if(balls[4]==balls[5])
{
printf("不合格的球是7且偏重");
}else if(balls[4]>balls[5])
{
printf("不合格的球是5且偏重");
}else{
printf("不合格的球是6且偏重");
}
}else{
if(balls[2]==balls[3])
{
printf("不合格的球是8且偏重");
}else if(balls[2]>balls[3])
{
printf("不合格的球是4且偏轻");
}else{
printf("不合格的球是3且偏轻");
}
}
}
}