问题好像出在判断
by liu_bi_ @ 2019-03-12 18:48:25
我的代码:
```cpp
# include <cstdio>
# include <cmath>
using namespace std;
char c;
int l11[10000],l21[10000],w11[10000],w21[10000];
bool check(int a,int b)
{
if(a<11 && b<11)
return 0;
if(abs(a-b)>=2)
return 1;
return 0;
}
bool check1(int a,int b)
{
if (a<21 && b<21)
return 0;
if (abs(a-b)>=2)
return 1;
return 0;
}
int main()
{
int w1=0,l1=0,w2=0,l2=0;
int m11=0,m21=0;
while (1)
{
scanf("%c",&c);
if (c=='W')
{
w1++;
w2++;
}
if (c=='L')
{
l1++;
l2++;
}
if (c=='E')
break;
if (check(w1,l1))
{
m11++;
w11[m11]=w1;
l11[m11]=l1;
w1=0;
l1=0;
}
if (check1(w2,l2))
{
m21++;
w21[m21]=w2;
l21[m21]=l2;
w2=0;
l2=0;
}
}
m11++;
w11[m11]=w1;
l11[m11]=l1;
m21++;
w21[m21]=w2;
l21[m21]=l2;
for (int i = 1; i <= m11; ++i)
printf("%d:%d\n",w11[i],l11[i]);
printf("\n");
for (int i = 1; i <= m21; ++i)
printf("%d:%d\n",w21[i],l21[i]);
return 0;
}//勿抄
```
by liu_bi_ @ 2019-03-12 18:49:47
@[brony](/space/show?uid=84070)
by liu_bi_ @ 2019-03-12 18:50:16
不能直接写==11或==21
by liu_bi_ @ 2019-03-12 18:51:09
@[zhong_jia_jun](/space/show?uid=97605)
是不是要写“直到分差大于或者等于22,才一局结束”这个条件
by brony @ 2019-03-12 19:02:03
@[brony](/space/show?uid=84070)
是这样:
1.两边都没有到21分,继续;
2.有人到了21分且与另一个人分差小于2,停止;
3.上面两种都不符合,分差小于2,赛点继续
by liu_bi_ @ 2019-03-12 19:10:14
第二条是大于等于2
by liu_bi_ @ 2019-03-12 19:10:57
```
#include<iostream>
int l,a,b;
char aa[100010];
using namespace std;
int main()
{
for(int i=1;;i++)
{
cin>>aa[i];
if(aa[i]=='E')
break;
l++;
}
for(int i=1;i<=l;i++)
{
if(aa[i]=='W')
a++;
else b++;
if((a>=11&&a-b>=2)||(b>=11&&b-a>=2))
{
cout<<a<<":"<<b<<endl;
a=0;
b=0;
}
}
cout<<a<<":"<<b<<endl;
cout<<endl;
a=0;
b=0;
for(int i=1;i<=l;i++)
{
if(aa[i]=='W')
a++;
else b++;
if((a>=21&&a-b>=2)||(b>=21&&b-1>=2))
{
cout<<a<<":"<<b<<endl;
a=0;
b=0;
}
}
cout<<a<<":"<<b;
return 0;
}
```
@[zhong_jia_jun](/space/show?uid=97605)
60分了。。。
by brony @ 2019-03-12 19:19:13
@[zhong_jia_jun](/space/show?uid=97605) 哦哦哦我判断条件打错了已A谢谢啦
by brony @ 2019-03-12 19:20:58
@[brony](/space/show?uid=84070)
您应该写个函数,这样还是有问题吧。。。
by liu_bi_ @ 2019-03-12 19:21:59