五位跳水高手参加跳水比赛,A选手说:B第二,我第三。B选手:我第二,E第四。C选手:我第一,D第二。D选手:C最后,我第三。E选手:我第四,A第一 。成绩公布之后,每位选手的预测都只说对一半,求名次?

#include<stdio.h>
int main()
int a,b,c,d,e,c1,c2,c3,c4,c5;
for(a=1;a<=5;a++)
{
for(b=1;b<=5;b++)
{
for(c=1;c<=5;c++)
{
for(d=1;d<=5;d++)
{
for(e=1;e<=5;e++)
{
c1=(b==2)+(a==3)==1;
c2=(b==2)+(e==4)==1;
c3=(c==1)+(d==2)==1;
c4=(c==5)+(d==3)==1;
c5=(e==4)+(a==1)==1;
if(c1+c2+c3+c4+c5==5&&a+b+c+d+e==15&&a*b*c*d*e==120)
{
printf("A:%d\nB:%d\nC:%d\nD:%d\nE:%d\n",a,b,c,d,e);
return 0;
}
}
}
}
}
}
}

运行结果:A:3
                 B:1
                 C:5
                D:2
                E:4

解析:五个人,每个人说的话都是对一半,故我们可以采用5*5的循坏结构,也就是for循坏这个结构。c1=(b==2)+(a==3)==1这个结构主要用来表示每个人说的话都是对一半,表示b假如为第二名,a就不是第三名,(b==2)的判断值为1,(a==3)的判断值为0,相加总是为为1.名次有1,2,3,4,5名,名次之和 为15,名次之积为120,这两个条件必不可少,没有这两个条件的话,程序无法对名次进行筛选,因此会造成有重复的排名。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值