本题思路:
1.两种情况11分和21分制的注意,要避免在循环过程中要多次输入,列如像前面没有用用while储存起来,直接用for
2.要注意记分1号选手可以用+x,2号用1-x
3.一次结束后也要输出现在的结果
#include<iostream>
#include<cmath>
using namespace std;
int f[2] = { 11,21 };//11分制和21分制
int a[25 * 2500 + 10], n = 0;//n表示打了多少球,a表示记分
int main() {
char tmp;
while (1) {
cin >> tmp;
if (tmp == 'E')break;
else if (tmp == 'W') a[n++]=1;
else if (tmp == 'L')a[n++] = 0;
}
for (int k = 0; k < 2; k++) {
int w = 0, l = 0;
for (int i = 0; i < n; i++) {
w += a[i];//表示1号选手加1分
l += 1 - a[i];//表示2号选手加1分
if ((max(w, l) >= f[k]) && fabs(w - l) >= 2) {
cout << w << ":" << l << endl;
w = l = 0;
}
}
cout << w << ":" << l << endl << endl;//结束也要输出
}
}