题目内容:
五位运动员参加十米高台跳水比赛,有人让他们预测比赛结果:
A选手说:B第二,我第三
B选手说:我第二,E第四
C选手说:我第一,D第二
D选手说:C最后,我第三
E选手说:我第四,A第一
比赛结束,每位选手都说对一般,请编程确定比赛名次
解题思路:a,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)+(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)//五个人的名次相乘结果需要时120就是正确的排名
{
printf("a=%d b=%d c=%d d=%d e=%d", a, b, c, d, e);
}
}
}
}
}
}
}
return 0;
}