一道中等难度的C程序题

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:45:14
5位跳水高手参加10米高台跳水决赛,有好事者让5人根据实力预测比赛结果,A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一。决赛成绩公布后,每位选手的预测都只说对了一半,即一对一错。请编程解出比赛的实际名次。

给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>

int main()
{
int cc1,cc2,cc3,cc4,cc5; //cc1到cc5代表5位选手的逻辑判断
int A,B,C,D,E; //A,B,C,D,E分别代表5位选手的名次
int g; //问题是否解决的BOOL值
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++)
{ cc1=((B==2)&&(!(A==3)))||((!(B==2))&&(A==3));
cc2=((B==2)&&(!(E==4)))||((!(B==2))&&(E==4));
cc3=((C==1)&&(!(D==2)))||((!(C==1))&&(D==2));
cc4=((C==5)&&(!(D==3)))||((!(C==5))&&(D==3));
cc5=((E==4)&&(!(A==1)))||((!(E==4))&&(A==1));
if(((cc1+cc2+cc3+cc4+cc5)==5)&&(A!=B)&&(A!=C)&&(A!=D)&&(A!=E)&&(B!=C)&&(B!=D)&&(B!=E)&&(C!=D)&&(C!=E)&&(D!=E))
{ g=1;
printf("A的名次是: %d\n",A);
printf("B的名次是: %d\n",B);