酷代码 AI
菜单
服务商

#include<iostream> #include<cmath> using namespace std; int f[2] = {11, 21}; int a[25 * 2500 + 10], n = 0; int main(){ char tmp; while(1){ cin >> tmp; if(tmp == 'E') break; else if(tmp == 'W') a[n++] = 1; else if(tmp == 'L') a[n++] = 0; } for(int k = 0; k < 2; k++){ int w = 0, l=0; for(int i = 0; i < n; i++){ w += a[i]; l += 1 - a[i]; if((max(w, l) >= f[k]) && abs(w - l) >= 2) { cout << w << ":" << l << endl; w = 0; l = 0; } } cout << w << ":" << l << e

```cpp // 引入输入输出流头文件,用于进行输入输出操作 #include<iostream> // 引入数学库头文件,这里代码中未实际使用该库功能,但可能在后续扩展中会用到 #include<cmath> // 使用标准命名空间,这样在使用标准库中的类和函数时可以省略std::前缀 using namespace std; // 定义一个包含两个元素的整数数组f,分别存储两种比赛规则下获胜所需的最少分数 // f[0] 对应11分制,f[1] 对应21分制 int f[2] = {11, 21}; // 定义一个较大的整数数组a,用于存储比赛结果,最多可存储25 * 2500个结果 // n 用于记录实际存储的比赛结果数量 int a[25 * 2500 + 10], n = 0; // 主函数,程序的入口点 int main(){ // 定义一个字符变量tmp,用于临时存储从输入读取的字符 char tmp; // 进入一个无限循环,持续读取输入字符 while(1){ // 从标准输入读取一个字符并存储到tmp中 cin >> tmp; // 如果读取到的字符是 'E',表示输入结束,跳出循环 if(tmp == 'E') break; // 如果读取到的字符是 'W',表示一方获胜,将数组a中当前位置赋值为1,并将n加1 else if(tmp == 'W') a[n++] = 1; // 如果读取到的字符是 'L',表示另一方获胜,将数组a中当前位置赋值为0,并将n加1 else if(tmp == 'L') a[n++] = 0; } // 遍历数组f,处理两种比赛规则(11分制和21分制) for(int k = 0; k < 2; k++){ // 初始化两个变量w和l,分别用于记录当前局中双方的得分,初始值都为0 int w = 0, l=0; // 遍历存储比赛结果的数组a for(int i = 0; i < n; i++){ // 如果当前比赛结果为1(即一方获胜),将w加1 w += a[i]; // 如果当前比赛结果为0(即另一方获胜),将l加1 l += 1 - a[i]; // 检查是否满足一局比赛结束的条件: // 1. 双方中至少有一方得分达到或超过f[k](11分制或21分制) // 2. 双方得分差至少为2 if((max(w, l) >= f[k]) && abs(w - l) >= 2) { // 输出当前局双方的得分,格式为 "w:l",并换行 cout << w << ":" << l << endl; // 一局比赛结束,将双方得分重置为0,准备记录下一局的得分 w = 0; l = 0; } } // 输出最后一局未完成(或整段比赛结束)时双方的得分,格式为 "w:l",并换行 cout << w << ":" << l << endl; // 输出一个空行,用于分隔两种比赛规则的输出结果 cout << endl; } // 主函数正常结束,返回0表示程序成功执行 return 0; } ``` 这段代码的主要功能是根据输入的比赛结果(用 `W` 表示一方获胜,`L` 表示另一方获胜,`E` 表示输入结束),分别按照11分制和21分制输出每一局比赛的结果。每一局比赛结束的条件是一方得分达到或超过规定分数(11分或21分)且双方得分差至少为2分。最后会输出未完成的一局(或整段比赛结束)时双方的得分。 [2025-12-02 18:44:32 | AI问答 | 926点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多