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<stdio.h>
33 #include<math.h>
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<i;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 }