RE求助
查看原帖
RE求助
1274445
AlanRosston楼主2024/3/5 23:01

RE求助

代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
    int n = 0;
    char **string = (char**)malloc(2501 * sizeof(char*));
    for(int i = 0; i < 2500; i++) {
        string[i] = (char*)malloc(25 * sizeof(char));
    }

    // 将所有字符全部读取并存储
    while(fgets(string[n], sizeof(char*), stdin) != NULL) {
        string[n][strlen(string[n])] = '\0';    //换行符替换
        n++;
    }

    //用11分计数
    int a = 0, b = 0;
    for(int i = 0; i < n; i++) {
        for(int j = 0; string[i][j] != '\0'; j++) {
            if(string[i][j] == 'E') {
                printf("%d:%d\n", a, b);
                goto rule21;
            } else {
                if(string[i][j] == 'W') {
                    a++;
                }
                else if(string[i][j] == 'L') {
                    b++;
                }

                if(abs(a - b) >= 2 && (a >= 11 || b >= 11)) {
                    printf("%d:%d\n", a, b);
                    a = 0;  //归零
                    b = 0;
                }
            }
        }
    }
    
    rule21:
    puts(" ");
    a = 0;
    b = 0;
    for(int i = 0; i < n; i++) {
        for(int j = 0; string[i][j] != '\0'; j++) {
            if(string[i][j] == 'E') {
                printf("%d:%d", a, b);
                goto end;
            } else {
                if(string[i][j] == 'W') {
                    a++;
                }
                else if(string[i][j] == 'L') {
                    b++;
                }

                if(abs(a - b) >= 2 && (a >= 21 || b >= 21)) {
                    printf("%d:%d\n", a, b);
                    a = 0;  //归零
                    b = 0;
                }
            }
        }
    }

    end:
    for(int i = 0; i < 2500; i++) {
        free(string[i]);
    }
    free(string);

    return 0;
}
2024/3/5 23:01
加载中...