标签:sb2 sb1 NOIP ++ 乒乓球 2003 int sa2 sa1
[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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。