洛谷P1042乒乓球

这是一个C++程序,用于模拟乒乓球比赛。程序读取输入的每一轮比赛结果,根据规则计算并输出当前比分。当一方领先两分且得分超过11分时,该方获胜,比分清零进入下一局。最后,当一方得分超过21分并领先两分时,比赛结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <bits/stdc++.h>
using namespace std;
int win[62503];
int w, l;
int main(){
    char s;
//首先定义一个字符变量s,一直输入s,只要s!=E,那么循环一直进行 
    for(int i=1; cin >> s && s != 'E'; i++)
        if(s == 'W')
//如果s是W,那么我们就此时对应的位置标记为1,否则标记为2 
            win[i] = 1;
        else
            win[i] = 2;
//循环部分,题目要求是每一个小节的比分,并且此时的比分    
    for(int i=1; ; i++){
        if(win[i] == 1)
            w++;
        if(win[i] == 2)
            l++;
        if(win[i] == 0){
            cout << w << ":" << l << endl << endl;
            break;
        }
//如果win[i]==0,表示此时是结束了,结束的时候就需要跳出循环了 
        if(l-w >= 2 || w-l >= 2)
            if(w >= 11 || l >= 11){
        //胜利的要求是:首先两者的分差必须要大于2,比如11:10,那么会继续比赛,如果是13:11,那么此时前者胜利
        //其次,二者中的得分必须是大于十一分的,才能算胜利 
                cout << w << ":" << l << endl;
                w = 0;
                l = 0;
            //每一小节结束后,需要将每个人的得分清零。 
            }
    }
    
    w = 0;
    l = 0;
//同上 
    for(int i=1; ; i++){
        if(win[i] == 1)
            w++;
        if(win[i] == 2)
            l++;
        if(win[i] == 0){
            cout << w << ":" << l << endl << endl;
            break;
        }
        if(w-l >= 2 || l-w >= 2)
            if(w >= 21 || l >= 21){
                cout << w << ":" << l << endl;
                w = 0;
                l = 0;
            }
    }
    
    
    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值