5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三; (B2&&A!=3)+(B!=2&&A3)1
B选手说:我第二,E第四; (B
2&&E!=4)+(B!=2&&E4)1
C选手说:我第一,D第二; (C
1&&D!=2)+(C!=1&&D
2)1
D选手说:C最后,我第三; (C
5&&D!=3)+(C!=5&&D3)1
E选手说:我第四,A第一; (E!=4&&A
1)+(E
4&&A!=1)==1
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<stdlib.h>
void Fun() {
	for (int A = 1; A <= 5; A++) {
		for (int B = 1; B <= 5; B++) {
			for (int C = 1; C <= 5; C++) {
				for (int D = 1; D <= 5; D++) {
					for (int E = 1; E <= 5; E++) {
						if((B == 2 && A != 3) + (B != 2 && A == 3) == 1&& (B == 2 && E != 4) + (B != 2 && E == 4) == 1&&
							(C == 1 && D != 2) + (C != 1 && D == 2) == 1&& (C == 5 && D != 3) + (C != 5 && D == 3) == 1&&
							(E != 4 && A == 1) + (E == 4 && A != 1) == 1)
							if (120 == A*B*C*D*E) {   //筛选名次重复的情况
								printf(\"A=%d  \", A);
								printf(\"B=%d  \", B);
								printf(\"C=%d  \", C);
								printf(\"D=%d  \", D);
								printf(\"E=%d  \", E);

							}
					}
				}
			}
		}
	}
}
int main() {
	Fun();
	system(\"pause\");
	return 0;
}

\"在这里插入图片描述\"

收藏 打印