用编程确定名次
题目
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
编程确定比赛的名次
#include <stdio.h>
int BJ(int a, int b, int c, int d, int e)
{ //每个数都不相等则输出
if(a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b
!=e&&c!=d&&c!=e&&d!=e)
{
return 1;
}
else
{
return 0;
}
}
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((((b==2)+(a==3))==1)
&&(((c==1)+(d==2))==1)
&&(((c==5)+(d==1))==1)
&&(((e==4)+(a==1))==1))
{
if(BJ(a,b,c,d,e))
{
printf("abcde的名次分别
a=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);
}
}
}
}
}
}
}
return 0;
}