代码如下:
#include<bits/stdc++.h>
const int max = 63600;
bool arr[max]; //保存胜负状态
int main()
{
char c;
int i=0; //记录总共打了几球
while(scanf("%c",&c)&&c!='E')
{
if(c=='W')
arr[i]=1;
if(c=='\n')
continue;
i++;
}
int q=0,w=0,l=0; //w记录赢的次数 l记录输的次数
while(q<i) //进行11分制下的计算
{
while(abs(w-l)<2||w<11&&l<11) //判断是否可以区分胜负,如果分差小于2或者赢和输的球数都小于11,则继续循环
{
if(arr[q]) //如果arr[q]为1 ,表明赢了,反之为0则为输
w++;
else l++;
q++;
if(q>=i)
break;
}
printf("%d:%d\n",w,l);
w=l=0;
}
printf("\n");
q=w=l=0;
while(q<i) //进行21分制下的计算
{
while(abs(w-l)<2||w<21&&l<21)
{
if(arr[q])
w++;
else l++;
q++;
if(q>=i)
break;
}
printf("%d:%d\n",w,l);
w=l=0;
}
}
这段代码跑测试用例没问题,我把出错的样例下载下来,自己跑了一遍,然后把结果存到一个word文档里,再把下载的结果放到另一个word文档,想通过word文档的比较找到有什么不同,结果反馈是没有不同,人麻了......
希望好心的大佬可以帮帮我,找一下到底是哪里的问题 QAQ