CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

简单又不简单的C语言题: 适合初学者 又不适合初学者:::::::>>>干什么呢?还不近来看看!

楼主baizhongri(我爱田华)2003-11-02 15:33:59 在 C/C++ / C语言 提问

两个乒乓球队进行比赛,各出三人.甲队为A,B,C三人,乙队为X,Y,Z三人.已抽签决定比赛名单.有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程序找出三对赛手的名单.  
   
   
  声明:1.如果此题简单的话   麻烦您用C语言写   ,不要用C++   .  
             
   
  如果此贴的问题觉得无聊,那么请您出去.希望各位前辈高手们认真回答此题   非常感谢. 问题点数:0、回复次数:5Top

1 楼smalltalk(老徐)回复于 2003-11-03 00:12:15 得分 0

问题解决,如下C代码:  
   
  #include   "stdio.h"  
  typedef   struct   _T_VS  
  {  
      char   x;  
      char   y;  
  }   VS;  
  #define   TEAM_NUM   3  
  #define   MAXMATCH     (TEAM_NUM*TEAM_NUM)  
   
  int   main()  
  {  
      unsigned   int   i,j;  
      char   i_teams[TEAM_NUM]   =   {'A','B','C'};  
      char   ii_teams[TEAM_NUM]   =   {'X','Y','Z'};  
      unsigned   int   count   =   0;  
      unsigned   int   count2   =   0;  
      VS   matches[MAXMATCH];  
      VS   result[TEAM_NUM];  
      char   person;  
      for   (i   =   0;   i   <   TEAM_NUM;   i++)  
      {  
          for   (j   =   0;   j   <   TEAM_NUM;   j++)  
          {  
              if(   (   (i_teams[i]==   'A')   &&   (ii_teams[j]   ==   'X')   )  
                    ||   (   (i_teams[i]==   'C')   &&   (ii_teams[j]   ==   'X')   )  
                    ||   (   (i_teams[i]==   'C')   &&   (ii_teams[j]   ==   'Z')   )   )  
                  continue;  
              else  
              {    
                  matches[count].x   =   i_teams[i];  
                  matches[count].y   =   ii_teams[j];  
                  count++;  
              }  
          }  
      }  
   
      count2   =   0;  
   
      person   =   'C';  
      for   (i=0;   i<   count;   i++)  
      {  
          if   (matches[i].x   ==   person)  
          {  
              result[0].x   =   matches[i].x;  
              result[0].y   =   matches[i].y;  
              break;  
          }  
      }  
      person   =   'A';  
      for   (i=0;   i<   count;   i++)  
      {  
          if   (   (matches[i].x   ==   person)   &&   (   matches[i].y   !=   result[0].y)   )  
          {  
              result[1].x   =   matches[i].x;  
              result[1].y   =   matches[i].y;  
              break;  
          }  
      }  
   
      person   =   'B';  
      for   (i=0;   i<   count;   i++)  
      {  
          if   (   (matches[i].x   ==   person)   &&   (   matches[i].y   !=   result[0].y)    
              &&   (   matches[i].y   !=   result[1].y))  
          {  
              result[2].x   =   matches[i].x;  
              result[2].y   =   matches[i].y;  
              break;  
          }  
      }  
   
   
      printf("Play   list:\n");  
      for   (i=0;   i<   TEAM_NUM;   i++)  
      {  
          printf("%c   vs   %   c   \n",   result[i].x,   result[i].y);  
      }  
      return   0;  
  }  
   
  输出为:  
  Play   list:  
  Play   list:  
  C   vs   Y  
  A   vs   Z  
  B   vs   XTop

2 楼chaonet(我是菜鸟)回复于 2003-11-03 01:05:19 得分 0

upTop

3 楼tass(怪物猪)回复于 2003-11-03 15:02:58 得分 0

upTop

4 楼Bandry(菜鸟-舍我其谁)回复于 2003-11-03 15:15:04 得分 0

不要局限于三个人,应该设两个数组,保存两队的参赛队员,通过循环来解决Top

5 楼smalltalk(老徐)回复于 2003-11-08 11:58:10 得分 0

它这里是带条件的排序问题。Top

相关问题

  • C++能干什么?
  • C语言到底能干什么呢?同学都说学C要换平台,是真的吗?
  • 我能用c干什么?
  • C++之后干什么?
  • c语言问题:
  • c语言问题!!!!!!!!!
  • c语言问题
  • C语言问题
  • c语言问题?
  • C语言问题

关键词

  • vs
  • 题
  • 简单
  • team
  • 名单
  • num
  • 比赛
  • 人
  • char
  • unsigned int

得分解答快速导航

  • 帖主:baizhongri

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo