noip2003复赛普及组第一题——乒乓球

  1 /*=======================================================================
  2 题一、乒乓球(Table.pas)
  3 【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,
  4 以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员
  5 因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球
  6 研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,
  7 他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。
  8 【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,
  9 然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。
 10 比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):
 11 WWWWWWWWWWWWWWWWWWWWWWLW
 12 在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行
 13 第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,
 14 正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。
 15 你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。
 16 【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符串有
 17 大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。
 18 【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分
 19 (按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制
 20 下的结果,两部分之间由一个空行分隔。
 21 【输入样例】
 22 WWWWWWWWWWWWWWWWWWWW
 23 WWLWE
 24 【输出样例】
 25 11:0
 26 11:0
 27 1:1
 28 
 29 21:0
 30 2:1
 31 =========================================================================*/
 32 #include
 33 #include
 34 int main()
 35 {
 36         int W1,L1,W2[10000]={0},L2[10000]={0},i,j;
 37         char ch;
 38         int f1=0,f2=0;
 39         freopen("table.in0","r",stdin);
 40         freopen("table.out0","w",stdout);
 41         i=0;
 42         W1=L1=0;
 43         ch=getchar();
 44         while(ch!='E')
 45         {
 46                 if(ch=='W')
 47                 {
 48                         W1++;
 49                         W2[i]++;
 50                 }
 51                 else if(ch=='L')
 52                 {
 53                         L1++;
 54                         L2[i]++;
 55                 }
 56                 if(W1>=11||L1>=11)
 57                 {
 58                         if(fabs(W1-L1)>=2)
 59                         {
 60                                 f1=1;
 61                                 printf("%d:%d\n",W1,L1);
 62                                 W1=L1=0;
 63                         }
 64                 }
 65                 if(W2[i]>=21||L2[i]>=21)
 66                 {
 67                         if(fabs(W2[i]-L2[i])>=2)
 68                         {
 69                                 i++;
 70                         }
 71                 }
 72                 
 73                 ch=getchar();
 74         }
 75         //下面是把11分制最后一组比赛结果给输出来
 76         //注意:这里的做法是:最后一组比赛结果即便是0:0也要输出
 77         //假如把下面屏蔽掉的部分启用,那么:假如只有一组而且是0:0那就输出,假如有多组,而且最后一组若是0:0,那最后一组不输出。(下面21分制相同) 
 78         /*if(f1==0)
 79         {*/
 80                 printf("%d:%d\n",W1,L1);
 81         /*}
 82         else
 83         {
 84                 if((W1+L1)!=0) printf("%d:%d\n",W1,L1);
 85         }*/
 86         printf("\n");
 87         for(j=0;j)
 88         {
 89                 f2=1;
 90                 printf("%d:%d\n",W2[j],L2[j]);
 91         }
 92         //下面把21分制最后一组比赛结果给输出来
 93         //注意:这里的做法是:最后一组比赛结果即便是0:0也要输出 
 94         /*if(f2==0)
 95         {*/
 96                 printf("%d:%d\n",W2[j],L2[j]);
 97         /*}
 98         else
 99         {
100                 if((W2[i]+L2[i])!=0)
101                         printf("%d:%d\n",W2[i],L2[i]);
102         }*/
103         return 0;
104 }
View Code

 

转载于:https://www.cnblogs.com/huashanqingzhu/p/4027871.html

你可能感兴趣的:(noip2003复赛普及组第一题——乒乓球)