5名运动员参加了10米跳水比赛,请你帮他们预测比赛结果。
A选手说:B第二,我第三;
B选手说:我第二,我第四;
C选手说:我第一,我第二;
D选手说:我最后,我第三;
E选手说:我第四,我第一;
比赛结束后,每位选手之说对了一半,请编程确定比赛的名次。
#include<stdio.h> int main() { int a=0; //数字代表选手的名次 // int b=0; int c=0; int d=0; int 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(((b==2)+(a==3)==1 )&& /*b==2表示b选手名次位第二名这句话为真 因为 选手一半话为真,所以总共逻辑和为1*/ ((b==2)+(e==4)==1 )&& ((c==1)+(d==2)==1 )&& ((c==5)+(d==3)==1 )&& ((e==4)+(a==1)==1 )) if(a*b*c*d*e==120) //确保5位选手名次各不相同--1*2*3*4*5=120// {printf("a=%d,b=%d,c=%d,d=%d,e=%d",a,b,c,d,e); } } } } } } return 0; }