```cpp
#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <cstring>
#include <string.h>
#include <algorithm>
#include <cmath>
using namespace std;
char arr[62550]; char c;int cnt;
int w, l; int win1[2] = { 11,21 };
//这是AC代码
void win(int a)
{
for (int i = 0; i < cnt; i++)
{
if (arr[i] == 'W')
w++;
if(arr[i] == 'L') // 看这里!!!!!
l++;
//....防止违规不全发代码了
}
int main()
{
while ((c = getchar())!= 'E')
{
if (c == '\n')
continue;
arr[cnt++] = c;
}
win(0);
putchar('\n');
win(1);
return 0;
}
```
by afreshmanofclanguage @ 2024-02-05 16:56:49
两个代码的区别在于else,但是字符串中应当只有W和L(E和\n和后边的所有内容不会进入字符串),然而使用互斥的判断却出了错,说明测试点中含有第五个或者更多字符
by afreshmanofclanguage @ 2024-02-05 16:59:53
补充:用例均正确
by afreshmanofclanguage @ 2024-02-05 17:00:30
@[afreshmanofclanguage](/user/1185696) 不是,你不发全代码鬼知道哪有问题
by Bingxiu @ 2024-02-05 17:13:02
@[afreshmanofclanguage](/user/1185696) 哦我知道了,有换行(
by Bingxiu @ 2024-02-05 17:14:02
@[afreshmanofclanguage](/user/1185696)
非常感谢这个帖子,我和楼主一个问题均用的是else判断,就只有20分调了半天把else换成if判断AC
```c
#include<stdio.h>
#include<string.h>
int main()
{
char a[65000];
for(int i=0;i>=0;i++)
{
scanf("%c",&a[i]);
if(a[i]=='\n')
{
i--;
continue;
}
if(a[i]=='E')
break;
}
int number1=0,number2=0;
for(int i=0;i>=0;i++)
{
if(a[i]=='E')
{
printf("%d:%d\n\n",number1,number2);
break;
}
if(a[i]=='W')
{
number1++;
}
if(a[i]=='L')//这里如果是else会WA
{
number2++;
}
if((number1>=11&&(number1-number2)>=2)||(number2>=11&&(number2-number1)>=2))
{
printf("%d:%d\n",number1,number2);
number1=0;
number2=0;
}
}
number1=0,number2=0;
int flag=0;
for(int i=0;i>=0;i++)
{
if(a[i]=='E')
{
printf("%d:%d",number1,number2);
break;
}
if(a[i]=='W')
{
number1++;
}
if(a[i]=='L')//这里如果是else会WA
{
number2++;
}
if((number1>=21&&(number1-number2)>=2)||(number2>=21&&(number2-number1)>=2))
{
printf("%d:%d\n",number1,number2);
number1=0;
number2=0;
flag++;
}
}
return 0;
}
```
by HEU_ZWZ @ 2024-03-11 23:06:16