现在位置: 首页 > C 教程 > 正文

C 练习实例22

C 语言经典100例 C 语言经典100例

题目:两个乒乓球队进行比赛,各出三人,甲队为 a、b、c 三人,乙队为 x、y、z 三人。

抽签决定比赛名单,有人向队员打听比赛的名单:a 说他不和 x 比,c 说他不和 x、z 比,请编写代码找出三队赛手的名单。

思路:

  1. 使用 3 个循环 分别枚举甲队的每个队员与乙队的队员匹配的可能性。
  2. 添加 约束条件,过滤掉不满足题目要求的组合:
    • a 不和 x 比赛。
    • c 不和 x 和 z 比赛。
  3. 确保每个乙队的队员只能和一个甲队的队员比赛。

实例

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include <stdio.h> int main() { // 定义甲队和乙队的成员 char teamA[] = {'a', 'b', 'c'}; // 甲队:a, b, c char teamB[] = {'x', 'y', 'z'}; // 乙队:x, y, z // 变量 i, j, k 分别表示 a, b, c 的对手 char i, j, k; // 枚举 a 的对手 for (i = 'x'; i <= 'z'; i++) { // 枚举 b 的对手 for (j = 'x'; j <= 'z'; j++) { // 确保 a 和 b 的对手不同 if (i != j) { // 枚举 c 的对手 for (k = 'x'; k <= 'z'; k++) { // 确保 c 的对手与 a 和 b 的对手不同 if (i != k && j != k) { // 满足题目条件:a 不和 x 比,c 不和 x 和 z 比 if (i != 'x' && k != 'x' && k != 'z') { // 输出匹配结果 printf("比赛顺序:a--%c\tb--%c\tc--%c\n", i, j, k); } } } } } } return 0; }

以上实例输出结果为:

顺序为:a--z	b--x	c--y

C 语言经典100例 C 语言经典100例