码迷,mamicode.com
首页 > 其他好文 > 详细

逻辑推理-运动员排名

时间:2017-12-10 13:10:15      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:ace   不能   splay   close   结束   分享图片   opened   class   排名   

运动员排名问题: 
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果,他们的预测结果是:
A选手说:B第一,A第三。
B选手说:B第二,E第四。
C选手说:C第一,D第二。
D选手说:C最后,D第三。
E选手说:E第四,A第一。
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次

注: 关于每一位选手只对一半的逻辑不能简单地只用||(或)解决,因为或在左右均为真是也为真,这时候的逻辑判断应该是异或的,也就是说只有一边为真另一边为假时结果才为真,具体实现看代码

代码如下

技术分享图片
 1 #include<iostream>
 2 using namespace std; 
 3 
 4 int main()
 5 {
 6     int a, b, c, d, e;  //代表第一位到第五位选手
 7     for(a=1;a<=5;a++)
 8     for(b=1;b<=5;b++)
 9     for(c=1;c<=5;c++)
10     for(d=1;d<=5;d++)
11     for(e=1;e<=5;e++)
12     {
13         //每个人只对一半 :
14         if ((b == 1 && a != 3) || (b != 1 && a == 3) == 1)  
15         if ((b == 2 && e != 4) || (b != 2 && e == 4) == 1)  
16         if ((c == 1 && d != 2) || (c != 1 && d == 2) == 1)  
17         if ((c == 5 && d != 3) || (c != 5 && d == 3) == 1)  
18         if ((e == 4 && a != 1) || (e != 4 && a == 1) == 1)
19         {
20             cout << "A,B,C,D,E的名次: " << a << " " << b << " "
21             << c << " "<< d << " " << e << endl;
22         } 
23     }
24     
25     return 0;
26 }
View Code

 

逻辑推理-运动员排名

标签:ace   不能   splay   close   结束   分享图片   opened   class   排名   

原文地址:http://www.cnblogs.com/wyb666/p/8016442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!