[2003年NOIP普及组] 乒乓球
作者:互联网
[2003年NOIP普及组] 乒乓球
思路:将两人比赛成绩分别同时计分,满足比赛规则就记录,依次输出。
分析:在比赛中,当双方比分都大于等于10的情况下要连续赢两球,才算赢。
注意:比完了第一场,下一场还没开始,那也要输出0:0
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int sa[10005]={0},sb[10005]={0};//11赛制
int ka[10005]={0},kb[10005]={0};//21赛制
char ch;//要输入的字符
int t1=1,t2=1;//分别记录不同赛制的不同回合
int sa1=0,sb1=0,sa2=0,sb2=0;//不同赛制a,b两人的分数(计数器)
int first=0;//标记,用于处理一开始是E的情况
while(cin>>ch)
{
if(ch=='E')//到E为止
{
if(first==0)
{cout<<"0:0"<<endl<<endl<<"0:0";return 0;}
sa[t1]=sa1;sb[t1]=sb1;
ka[t2]=sa2;kb[t2]=sb2;
t1++;t2++;
break;
}
first++;
if(ch=='W') {sa1++;sa2++;}//同时计数
if(ch=='L') {sb1++;sb2++;}
if(sa1>=11&&sa1-sb1>=2||sb1>=11&&sb1-sa1>=2)
{sa[t1]=sa1;sb[t1]=sb1;t1++;sa1=0;sb1=0;}
if(sa2>=21&&sa2-sb2>=2||sb2>=21&&sb2-sa2>=2)
{ka[t2]=sa2;kb[t2]=sb2;t2++;sa2=0;sb2=0;}
}
for(int i =1; i<t1 ; i++)
cout<<sa[i]<<":"<<sb[i]<<endl;
cout<<endl;
for(int i=1;i<t2;i++)
cout<<ka[i]<<":"<<kb[i]<<endl;
return 0;
}
标签:sb2,sb1,NOIP,++,乒乓球,2003,int,sa2,sa1 来源: https://www.cnblogs.com/xdzxyingrui/p/16578246.html