1.
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
代码思路分析:
每个人都说对了一半,是让电脑判断谁对谁错,人为输入相关情况,而不是人为判断出情况这是误区之一.
其二,容易没有思路,其实就是枚举和筛选的结合.枚举出所有的情况,再根据题目要求进行判断.枚举就是for循环的嵌套,筛选就是if语句的判断方式.
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
int a=0,b=0,c=0,d=0,e=0;
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++)
{
if((2==b&&3!=a)||(2!=b&&3==a)==1)
{
if((2==b&&4!=e)||(2!=b&&4==e)==1)
{
if((1==c&&2!=d)||(1!=c&&2==d