有几个坑,分差必须大于二,结束前必须输出一次,只给一个E时要输出0:0
#include<stdio.h>
#include<string.h>
#include<math.h>
int max(int a,int b){//判断大小
int max=a;
if(b>a){
max=b;
}
return max;
}
int main()
{
char u;
char a[2501*26]={'\0'};//给定数据大小
int len,i;
i=0;
for(i=0;;i++){
scanf("%c",&a[i]);
if(a[i]=='E'){
break;//停止读入
}
if(a[i]=='\n'){
i--;//读入换行要i-1
}
}
len=i;
int b[2]={0};//存储数据计数
int c[2]={0};
//printf("%d\n",len);
for(i=0;i<=len;i++){
if(a[0]=='E'){
printf("%d:%d\n",b[0],b[1]);//第一个就是E也要输出
break;
}
if(a[i]=='E'){
break;
}
if(a[i]=='W'){
b[0]++;//计数
}
if(a[i]=='L'){
b[1]++;//计数
}
if(max(b[0],b[1])>=11&&(abs((b[0]-b[1]))>=2)){
printf("%d:%d\n",b[0],b[1]);
b[0]=0;
b[1]=0;
}
if(i+1==len||a[i+1]=='E'){
printf("%d:%d\n",b[0],b[1]);
}
}
//printf("%d\n",i);
//printf("\n");
for(i=0;i<=len;i++){//=<是为了防止第一个就是E从而无法进入循环
if(a[0]=='E'){
printf("%d:%d\n",c[0],c[1]);
break;
}
if(a[i]=='E'){
break;
}
if(a[i]=='W'){
c[0]++;
}
if(a[i]=='L'){
c[1]++;
}
if(max(c[0],c[1])>=21&&(abs((c[0]-c[1]))>=2)){
printf("%d:%d\n",c[0],c[1]);
c[0]=0;
c[1]=0;//归零
}
if(i+1==len||a[i+1]=='E'){//最后结束时要输出,结束时可能不满足先前条件
printf("%d:%d\n",c[0],c[1]);
}
}
return 0;
}