C语言循环控制

描述

给出两个组合,明确给出了组合中不可能的对应方式,要求最终的对应方式。(谭浩强 C 语言 第三版 130 页第 6.15 题)

题目

两个乒乓球队进行比赛,各出 3 人。甲队为 A、B、C 3 人,乙队为 X 、Y、Z 3 人。已抽签绝对比赛名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比,请编程序找出 3 队赛手的名单。

题目解决思路

我们可以定义三个 变量,分别表示 A、B、C 的对手。我们将每个人的关系都遍历一下。然后根据题干进行排除。

代码具体实现

#include <stdio.h> void main() { printf("嗨客网(www.haicoder.net)\n\n"); char i,j,k; //假设 i 是 A 的对手,j 是 B 的对手,k 是 C 的对手 for( i = 'X'; i<= 'Z'; i++) { for(j='X'; j<='Z'; j++) { if(i != j) { for(k='X'; k<='Z'; k++) { if(i!=k && j!=k) { if(i!='X' && k!= 'X' && k!='Z') { printf("A--%c\t B--%c\t c--%c\n",i,j,k); } } } } } } }

运行后,控制台输出如下:

20_6.15答案.png

因为题目中说 A 不和 X 比,C 不和 X、Z比较,所以 i 不可能等于 X, k 也不可能等于 X 和 Z。