题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

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

typedef struct {
    char note[19];
    int line;
    int cnt;
} Record;

void get_desc(char* str, char* desc) {
    int n = 0;
    for (int i = strlen(str) - 1; i >= 0; i--, n++) {
        if (n == 16 || str[i] == '\\') {
            strcpy(desc, &str[i + 1]);
            break;
        }
    }
}

int main() {
    char str[100];
    int line;
    int flag;
    int i;
    int loop_index = 0;
    Record record[100] = {0};

    while (scanf("%s %d", str, &line) != EOF) { // 注意 while 处理多个 case
        char temp_desc[18];
        get_desc(str, temp_desc);

        flag = 0;
        for (i = 0; i < loop_index; i++) {
            if (strcmp(temp_desc, record[i].note) == 0 && record[i].line == line) {
                flag = 1;
                break;
            }
        }
        if (flag)
            record[i].cnt++;
        else {
            strcpy(record[loop_index].note, temp_desc);
            record[loop_index].line = line;
            record[loop_index].cnt++;
            loop_index++;
        }

    }
    if (loop_index < 8) {
        for (int j = 0; j < loop_index; j++) {
            printf("%s %d %d\n",
                   record[j].note, record[j].line,
                   record[j].cnt);
        }
    } else {
        for (int j = 0; j < 8; j++) {
            printf("%s %d %d\n",
                   record[loop_index - 8 + j].note, record[loop_index - 8 + j].line,
                   record[loop_index - 8 + j].cnt);
        }
    }
    return 0;
}

题目不难,但是超级麻烦

全部评论

相关推荐

03-13 10:35
安徽大学 Java
牛客246100688号:蚂蚁卡简历的,简历看不上眼全a了也不会有面试的。
投递蚂蚁集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务