题解 | #简单错误记录#

简单错误记录

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

#include <stdio.h>
#include <string.h>
int main(){
    char str[101];
    int n;
    char note[100][17] = {'0'};   //记录日志,记100条,只输出后8条   ???为啥必须是17,不能是16
    int row[100] = {0};     //记录错误代码行号
    int num[100] = {0};     //记录错误次数
    int flag = -1;         //记录日志最后一条的位置,初始没有记录,记为-1
    while(scanf("%s%d",str,&n) != EOF){
        //截取最后路径,并保证在 16 位内
        char *p = strrchr(str, '\\');  //\cqzlyaszjvlsjmkwoqijggmybr
        p = strchr(p,p[1]);          //去除首位反斜杠
        int len = strlen(p);
        if(len > 16){
            p = p + (len -16);
            len = 16;
        }
        int i;
        for(i = 0; i <= flag; i++){//进行字符串、错误行数比较
            if((strcmp(note[i],p) == 0) && (row[i] == n)){
                num[i] = num[i] + 1;        //有记录,记录加 1
                break;
            }
        }
        if(i == flag + 1){   //没有匹配的,那就是新记录,直接存放
            flag = flag + 1;
            strcpy(note[flag],p);
            row[flag] = n;
            num[flag] = 1;
        }
    }
    if(flag < 8){
        for(int i = 0; i <= flag; i++){
            printf("%s %d %d\n",note[i],row[i],num[i]);
        }
    }else{
        for(int i = flag - 7; i <= flag; i++){
            printf("%s %d %d\n",note[i],row[i],num[i]);
        }
    }
    return 0;
}

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
Rena1ssanc...:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务