黑马程序员技术交流社区

标题: C语言编程练习-找对手名单 [打印本页]

作者: 984326157    时间: 2015-7-16 00:34
标题: C语言编程练习-找对手名单
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三对赛手的名单。
  1. int main(int argc, const char * argv[]) {
  2.     char a,b,c;
  3.     for (a='x'; a<='z'; a++) {
  4.         for (b='x'; b<='z'; b++) {
  5.             if (a!=b) {
  6.                 for (c='x'; c<='z'; c++) {
  7.                     if (a!=c && b!=c) {
  8.                         if (a!='x' && c!='x' && c!= 'z') {
  9.                             printf("三对赛手的名单是:a VS %c,b VS %c,c VS %c",a,b,c);
  10.                         }
  11.                     }
  12.                 }
  13.             }
  14.         }
  15.     }
  16.    
  17.     return 0;
  18. }
复制代码

作者: WHY-y    时间: 2015-7-16 19:50
好牛逼的感觉
作者: 丁丙乙甲    时间: 2015-7-16 21:02
#include <stdio.h>

int main(int argc, const char * argv[]) {
    char ch[3]={'x','y','z'};
    char a,b,c;
    int i=0;

    do{
        c=ch[i++];
    }while (c=='x'||c=='z');
    i=0;
    do{
        a=ch[i++];
    }while (a=='x'||a==c);
    i=0;
    do{
        b=ch[i++];
    }while (b==a||b==c);
    printf("a对%c, b对%c, c对%c",a,b,c);

    return 0;
}



作者: 丁丙乙甲    时间: 2015-7-16 21:05
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     char ch[3]={'x','y','z'};
  4.     char a,b,c;
  5.     int i=0;
  6.     do{
  7.         c=ch[i++];
  8.     }while (c=='x'||c=='z');
  9.     i=0;
  10.     do{
  11.         a=ch[i++];
  12.     }while (a=='x'||a==c);
  13.     i=0;
  14.     do{
  15.         b=ch[i++];
  16.     }while (b==a||b==c);
  17.     printf("a对%c, b对%c, c对%c",a,b,c);
  18.     return 0;
  19. }
复制代码



作者: 294250051    时间: 2015-7-17 10:29
WHY-y 发表于 2015-7-16 19:50
好牛逼的感觉

//甲、乙两个球队,甲有 A、B、C 三人,乙有 X、Y、Z 三人,A不和X比,C不和X、Z比,请找出三对对手的名单。
/*
#include "stdio.h"
int main()
{
    int a,b,c;//这里的小写的a、b、c,其实就是指代X、Y、Z。
    for(a='x';a<='z';a++) //三个变量全部遍历,寻找所有情况
        for(b='x';b<='z';b++)
            for(c='x';c<='z';c++)
                if(a!=b&&a!=c&&b!=c)  //首先,情况只有一种,没有一个人和两个人打的,所以要保证三者不同。
                   if(a!='x'&&(c!='x'&&c!='z')) //这里就是题目中的条件,a!='x',正好说明了,a是代替的球员X,球员A不和球员X比,所以变量a肯定不能指代球员X。因为最后输出球员A是和变量a指代的球员比赛。
                       printf("A vs %c\nB vs %c\nC vs %c",a,b,c);
    return 0;
}
*/





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2