简易编程题

5名运动员参加了10米跳水比赛,请你帮他们预测比赛结果。

A选手说:B第二,我第三;

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表示b选手名次位第二名这句话为真                                        
                                                 因为 选手一半话为真,所以总共逻辑和为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)   //确保5位选手名次各不相同--1*2*3*4*5=120//
					     {printf("a=%d,b=%d,c=%d,d=%d,e=%d",a,b,c,d,e);
						 }
					}
				}
			}
		}
	}
	return 0;
	
 } 

上一篇:D. Game With Array


下一篇:luoguP1434 [SHOI2002]:滑雪