5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
注意:该代码只需将各个选手所说的条件进行多重循环的判断,直到满足所有条件,那么就可以判断出他们的名次.但要注意的是,判断完成后可能会出现重复的名次,所以需要对出现的名次的次数进行约束并判断才能输出结果.
#include<stdio.h>
#include <stdlib.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) + (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 && a+b+c+d+e==15) { **//限制1,2,3,4,5几个数只能出现一次,不能重复**
printf("a=%d b=%d c=%d d=%d e=%d \n", a, b, c, d, e);
break;
}
}
}
}
}
}
}
system("pause");
return 0;
}