C 练习实例22
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
实例
// Created by www.facesoho.com on 15/11/9.
// Copyright © 2015年 小鸟启蒙. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
int main()
{
char i,j,k;
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\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
}
}
}
以上实例输出结果为:
顺序为:a--z b--x c--y

文人墨客
参考方法:
/****************************** 两个乒乓球队进行比赛,各出三人。 甲队为A,B,C三人,乙队为X,Y,Z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单 .A说他不和X比,C说他不和X,Z比,请编程序找出三队赛手的名单。 *********************************/ #include <stdio.h> #pragma warning(disable:4996) int main() { char a,b,c; int i,j; int n = 0; for(i=0;i<3;++i) { a = 'x'+i;//A的位置,I是相对于X的偏移量 for(j=1;j<3;++j) { b = 'x'+(i+j)%3;//B相对与A的位置,(I+J)%3为偏移量 c = 'x'+3-(i+j)%3-i;//C的位置 要 减去两个偏移量 if(a!='x'&&c!='x'&&c!='z') { printf("a--%c,b--%c,c--%c\n",a,b,c); n = 1; break; } } if(n == 1) break; } system("pause"); }文人墨客
本题目可以也使用枚举类型数据作,但要令枚举初值为 120,不然不好输出:
#include<stdio.h> enum rival { x = 120, y, z }; int main() { enum rival a, b ,c; for(a = x;a <= z;a ++) { for(b = x; b <= z ;b++) { for(c = x ;c <= z; c++) { if(a != x && c != x && c != z && a != b && b != c && a != c) printf("a = %c\nb = %c\nc = %c\n",a,b,c); } } } return 0; }