社区讨论

虽然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 条回复,欢迎继续交流。

正在加载回复...