5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
思路:五位选手 利用嵌套循环找 满足条件就打印。
#include<stdio.h>
int main()
{
int A, B, C, D, 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 == 1 || A == 3) + //根据题目信息判断 每人说对了一半
(B == 2 || E == 4) + //表达式判断 为真结果就为1 五个为真加
(C == 1 || D == 2) + //起来就是五 满足就打印
(C == 5 || D == 3) +
(E == 4 || A == 1)) == 5
)
{
if(A+B+C+D+E==15&&A*B*C*D*E==120)
//再次判断 剔除重名的情况
printf("A=%d B=%d C=%d D=%d E=%d\n", A, B, C, D, E);
}
}
}
}
}
}
return 0;
}