```
if ((w >= score || l >= score) && abs(w - l) >= 2) {
printf("%d:%d\n", w, l);
w = 0;
l = 0;
}
printf("%d:%d\n", w, l);
```
把判断外面的 `printf("%d:%d\n", w, l);` 移除循环即可,不然每次都会输出一遍。
```cpp
#include <iostream> // 优化:明确包含所需的头文件
using namespace std;
int mark = 0;
char c[90000]; // 确定所需变量大小,根据提示 25*250<30*300
void moni(int score) {
int w = 0, l = 0;
for (int i = 0; i < mark - 1; i++) {
if (c[i] == 'W') {
w++;
}
else if (c[i] == 'L') {
l++;
}
// 如果一方得分达到分数或双方分差大于等于 2,则输出当前比分并重置分数
if ((w >= score || l >= score) && abs(w - l) >= 2) {
printf("%d:%d\n", w, l);
w = 0;
l = 0;
}
}
printf("%d:%d\n", w, l);
}
int main() {
char tmp = ' ';
while (tmp!= 'E') {
cin >> tmp;
c[mark] = tmp;
mark++;
}
moni(11);
cout << endl;
moni(21);
return 0;
}
```
by Weekoder @ 2024-03-13 18:50:23
@[Zzz123456789101112](/user/1292265)
by Weekoder @ 2024-03-13 18:59:36
@[Weekoder](/user/800884) okok,谢谢啦
by Zzz123456789101112 @ 2024-03-13 19:48:16