请教,只有第一个和最后一个过了,借鉴的代码2
查看原帖
请教,只有第一个和最后一个过了,借鉴的代码2
560941
ruichu233楼主2021/9/23 16:26
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string a;
	cin >> a;
	long long m_W = 0, m_L = 0;
	for (int i = 0; i<a.size(); i++)
	{
		if (a.at(i) == 'W')
		{
			m_W++;
		}
		if (a.at(i) == 'L')
		{
			m_L++;
		}
		if (a.at(i) == 'E')
		{
			cout << m_W << ":" << m_L << endl<<endl;
			break;
		}
		if (m_W - m_L >= 2 || m_L - m_W >= 2)
		{
			if (m_W >= 11 || m_L >= 11)
			{
				cout << m_W << ":" << m_L<<endl;
				m_W = 0;
				m_L = 0;
			}
		}
		
	}
	m_W = 0; m_L = 0;
	for (int i = 0; i < a.size(); i++)
	{
		if (a.at(i) == 'W')
		{
			m_W++;
		}
		if (a.at(i) == 'L')
		{
			m_L++;
		}
		if (a.at(i) == 'E')
		{
			cout << m_W << ":" << m_L ;
			break;
		}
		if (m_W - m_L >= 2 || m_L - m_W >= 2)
		{
			if (m_W >= 21 || m_L >= 21)
			{
				cout << m_W << ":" << m_L << endl;
				m_W = 0;
				m_L = 0;
			}
		}
		
	}
	return 0;
}```cpp
#include <iostream>
#include <cstring>
using namespace std;
int win[62503]; 
int w,l;
int main()
{
	char s;
	for(int i=1;cin>>s&&s!='E';i++)//循环读入,当读到字符E结束 
	{
		if(s=='W')win[i]=1; 
		else win[i]=2; 
	}
	//----------------11分制 ----------------
	for(int i=1;1;i++)
	{
		if(win[i]==1)w++;//胜场+1 
		if(win[i]==2)l++;//负场+1 
		if(win[i]==0)//读到0则记录结束,输出记录结束前的分数。 
		{
			cout<<w<<":"<<l<<endl<<endl;
			break;
		}
		if(w-l>=2||l-w>=2)
			if(w>=11||l>=11)//当双方比分相差大于2且一方分数大等于11输出 
			{
				cout<<w<<":"<<l<<endl;
				w=0;//比分清零 
				l=0;
			}
	}
	w=0;//清零,为21分制计算做准备 
	l=0;
	//----------------21分制 ----------------
	for(int i=1;1;i++)//一切同上,唯一区别就是判定从11变为21 
	{
		if(win[i]==1)w++;
		if(win[i]==2)l++;
		if(win[i]==0)
		{
			cout<<w<<":"<<l;
			break;
		}
		if(w-l>=2||l-w>=2)
			if(w>=21||l>=21)//11变为21 
			{
				cout<<w<<":"<<l<<endl;
				w=0;
				l=0;
			}
	}
	return 0;//华丽地结束  ㄟ(▔▽▔)ㄏ
}
2021/9/23 16:26
加载中...