社区讨论
虽然AC了,但为啥for循环里后两个if语句一模一样
P1042[NOIP 2003 普及组] 乒乓球参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lobspy1v
- 此快照首次捕获于
- 2023/10/30 02:19 2 年前
- 此快照最后确认于
- 2023/11/04 06:49 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
char ch[62515];
int win,lose,n;//win代表胜利场数,lose代表失败场数,n储存ch数组的长度
int main(){
while(cin>>ch[n]){//输入
if(ch[n]=='E')break;//输入到E的时候停止,因为E之后的符号会影响代码的正常运行
n++;//边输入边计数,循环结束后的n就代表了ch数组的长度
}
for(int i=0;i<n;i++){
if(ch[i]=='W')//赢了的话win++
win++;
if(ch[i]=='L')//输了的话lose++
lose++;
if(abs(win-lose)>=2 && (win==11 || lose==11)){
cout<<win<<":"<<lose<<endl;
win=0;//清零,重新计数,代表一次比赛结束
lose=0;//同上
}
if(abs(win-lose)>=2 && (win>=11 || lose>=11)){
cout<<win<<":"<<lose<<endl;
win=0;
lose=0;
}
}
cout<<win<<":"<<lose<<endl;
win=0;
lose=0;
cout<<endl;
//------------------------以上为11分制
//------------------------以下为21分制
for(int i=0;i<n;i++){
if(ch[i]=='W')
win++;
if(ch[i]=='L')
lose++;
if(abs(win-lose)>=2 && (win==21 || lose==21)){
cout<<win<<":"<<lose<<endl;
win=0;
lose=0;
}
if(abs(win-lose)>=2 && (win>=21 || lose>=21)){
cout<<win<<":"<<lose<<endl;
win=0;
lose=0;
}
}
cout<<win<<":"<<lose;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...