大佬求助o(╥﹏╥)o,看了3h了找不到问题口牙#C语言
查看原帖
大佬求助o(╥﹏╥)o,看了3h了找不到问题口牙#C语言
583022
asdf2021楼主2024/11/27 00:38
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>

typedef struct competitionResult{
    int player1Score;
    int player2Score;
}CompetitionResult;//结构体存比赛双方信息

//初始化为0
void initCompetitionResult(CompetitionResult *res){
    res->player1Score=0;
    res->player2Score=0;
}

//11分制
void matchResult11(CompetitionResult *res,char points[][26],int m){
    m++;//此处输入m为行数的下标
    for(int i=0;i<m;i++){
        int len=strlen(points[i]);//每一行的信息个数
        for(int j=0;j<len;j++){
            if((res->player1Score>=11||res->player2Score>=11)&&abs(res->player1Score-res->player2Score)>=2){//如果其中一方大于等于11并且分差大于等于2
                printf("%d:%d\n",res->player1Score,res->player2Score);//输出并且初始化
                initCompetitionResult(res);
            }
            if(points[i][j]=='W') res->player1Score++;//W则左边++
            else if(points[i][j]=='L') res->player2Score++;//L则右边++
            else{//等于E就输出并初始化
                printf("%d:%d",res->player1Score,res->player2Score);
                initCompetitionResult(res);
                return ;
            }
        }
    }
}

//21分制同上
void matchResult21(CompetitionResult *res,char points[][26],int m){
    m++;
    for(int i=0;i<m;i++){
        int len=strlen(points[i]);
        for(int j=0;j<len;j++){
            if((res->player1Score>=21||res->player2Score>=21)&&abs(res->player1Score-res->player2Score)>=2){
                printf("%d:%d\n",res->player1Score,res->player2Score);
                initCompetitionResult(res);
            }
            if(points[i][j]=='W') res->player1Score++;
            else if(points[i][j]=='L') res->player2Score++;
            else{
                printf("%d:%d",res->player1Score,res->player2Score);
                initCompetitionResult(res);
                return ;
            }
        }
    }
}

int main(){
    char points[2600][26];//存比赛信息

    int m=-1;
    do{
        m++;//从第0行开始输入
        gets(points[m]);
    }while(strchr(points[m],'E')==NULL);

    CompetitionResult res;

    initCompetitionResult(&res);

    matchResult11(&res,points,m);//11分制输出
    printf("\n\n");
    matchResult21(&res,points,m);//21分制输出

    return 0;
}

2024/11/27 00:38
加载中...