十二硬币的C语言判别Word格式.docx
《十二硬币的C语言判别Word格式.docx》由会员分享,可在线阅读,更多相关《十二硬币的C语言判别Word格式.docx(5页珍藏版)》请在冰豆网上搜索。
⑴vs⑿
1)若一样重,则没有假币;
2)不一样重,则假币为⑿:
如果
(1)>
(12),则假币轻,反之,假币重;
2.若⑼⑽重,则第三步:
⑼比⑽
1)若一样重,则假币为⑾(较轻)
2)不一样重,则假币为⑼、⑽中较重者
3.若⑼⑽轻,则第三步:
1)若一样重,则假币为⑾(较重)
2)不一样重,则假币为⑼、⑽中较轻者
二、若⑴⑵⑶⑷重,则第二步:
⑴⑵⑸比⑶⑷⑹
1.若一样重,则假币在⑺⑻中,第三步:
⑺比⑻
假币为⑺、⑻中较轻者
2.若⑴⑵⑸端较重,则假币在⑴⑵⑹中,第三步:
⑴比⑵
1)若一样重,则假币为⑹(较轻)
2)不一样重,则假币为⑴⑵中较重者
3.若⑶⑷⑹端较重,则假币在⑶⑷⑸中,第三步:
⑶比⑷
1)若一样重,则假币为⑸(较轻)
2)不一样重,则假币为⑶、⑷中较重者
三、若⑴⑵⑶⑷轻,则与上面类似,第二步:
⑴⑵⑸比⑶⑷⑹
假币为⑺、⑻中较重者
2.若⑴⑵⑸端较轻,则假币在⑴⑵⑹中,第三步:
⑴比⑵
1)若一样重,则假币为⑹(较重)
2)不一样重,则假币为⑴⑵中较轻者
3.若⑶⑷⑹端较轻,则假币在⑶⑷⑸中,第三步:
1)若一样重,则假币为⑸(较重)
2)不一样重,则假币为⑶、⑷中较轻者
在科技发达的时代,我们都不愿意去做这样繁琐的比较,而是想借助于计算机的威力,下面给大家介绍一种方法,可以在很短的时间内完成中比较。
当然,这类问题转化到编程上去后,主要考查的是大家的编程思想,而不再是12硬币问题本身了,因为12个硬币的重量需要大家自己去输入,这些数据只是为了检验大家程序的正确与否。
下面是该问题的代码:
#include<
stdio.h>
voidmain()
{
inti;
floata[12];
for(i=0;
i<
12;
i++)
scanf("
%f"
&
a[i]);
if(a[0]+a[1]+a[2]+a[3]==a[4]+a[5]+a[6]+a[7])
{
if(a[0]+a[1]+a[2]==a[8]+a[9]+a[10])
{
if(a[8]==a[11])
printf("
Thereisnospecialcoin!
\n"
);
elseif(a[8]>
a[11])
Thereisaspecialcoin:
%f(12)andit'
slighterthanothers.\n"
a[11]);
else
sheavierthanothers.\n"
}
elseif(a[0]+a[1]+a[2]>
a[8]+a[9]+a[10])
if(a[8]==a[9])
%f(11)andit'
a[10]);
a[9])
%f(10)andit'
a[9]);
%f(9)andit'
a[8]);
else
}
elseif(a[0]+a[1]+a[2]+a[3]>
a[4]+a[5]+a[6]+a[7])
if(a[0]+a[2]+a[5]==a[1]+a[4]+a[8])
if(a[6]==a[7])
%f(4)andit'
a[3]);
elseif(a[6]>
a[7])
%f(8)andit'
a[7]);
%f(7)andit'
a[6]);
elseif(a[0]+a[2]+a[5]>
a[1]+a[4]+a[8])
if(a[0]==a[2])
%f(5)andit'
a[4]);
elseif(a[0]>
a[2])
%f
(1)andit'
a[0]);
%f(3)andit'
a[2]);
if(a[1]>
a[8])
%f
(2)andit'
a[1]);
if(a[5]<
%f(6)andit'
a[5]);
else
elseif(a[0]+a[2]+a[5]<
if(a[1]<
if(a[5]>
}
部分结果的截图: