【202002】牛客网“成绩排序”(吐槽向)

你离开我真会死。 提交于 2020-02-15 08:55:32

我的代码如下(CE):

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

typedef struct Student{
    char name[100];
    int age;
    int grade;
}stu;

void change(stu stu[], int i, int j){
    char temp_n[100];
    int temp_a, temp_g;

    strcpy(temp_n, stu[j].name);//j to temp
    temp_a = stu[j].age;
    temp_g = stu[j].grade;

    strcpy(stu[j].name, stu[i].name);//i to j
    stu[j].age = stu[i].age;
    stu[j].grade = stu[i].grade;

    strcpy(stu[i].name, temp_n);//temp to i
    stu[i].age = temp_a;
    stu[i].grade = temp_g;
}

int judge(char str1[], char str2[]){//1 shows str1 is the former one
    int len1, len2, len;
    int a, b;
    len = len1 > len2 ? len2 : len1;
    for(int i = 0; i < len; i++){
        a = (int)str1[i];
        b = (int)str2[i];
        if(a < b)
            return 1;
        else if(a > b)
            return -1;
    }
    if(len1 < len2)
        return 1;
    else if(len1 > len2)
        return -1;
}

void sortstu(stu stu[], int n){
    int k;
    for(int i = 0; i < n; i++){
        k = i;
        for(int j = i + 1; j < n; j++){
            if(stu[k].grade > stu[j].grade){//mini指向成绩更小者
                k = j;
            }else if(stu[k].grade == stu[j].grade){//如果成绩相当,则指向名称更前者
                if(judge(stu[k].name, stu[j].name) < 0){
                    k = j;
                }
            }
        }
        change(stu, i, k);
    }
}

int main(){
    int n;
    scanf("%d", &n);
    stu stu[n];
    for(int i = 0; i < n; i++){
        scanf("%s%d%d", stu[i].name, &stu[i].age, &stu[i].grade);
    }
//    printf("------------\n");
//    for(int i = 0; i < n; i++){
//        printf("%s %d %d\n", stu[i].name, stu[i].age, stu[i].grade);
//    }
//    printf("------------\n");
    sortstu(stu, n);
    for(int i = 0; i < n; i++){
        printf("%s %d %d\n", stu[i].name, stu[i].age, stu[i].grade);
    }
    return 0;
}

又是一个在codeblocks编译成功但遇上牛客网的OJ就编译失败的代码。好歹我也在cb上尝试过好几个例子,至少代码通过率得有个70%+吧,这要求不过分吧,但OJ就说我通过率为0。
问题是编译失败也就算了,我想看看没通过的测试用例改一下程序,但任凭我怎么刷新,关了重开,只要到这个题目上,牛客网给我的测试用例就只有一个:
在这里插入图片描述
?这个测试用例完全没有参考性吧!

这篇文章完全是写来吐槽牛客网的,想想可能是我C和C++混用?又挺原汁原味的所以才编译不通过吗?(技术有限,不太会用模板库啥的)

牛客网要求输入输出格式如下:
在这里插入图片描述
同一个测试用例,在我的CB上编译就和牛客网的结果不一样,为什么呢?为什么呢?为什么呢!???
cb运行截图:
在这里插入图片描述
牛客网运行截图:
在这里插入图片描述
在这里插入图片描述

????????????????????明明我在cb上的输出跟牛客网要求的标准输出是一致的????????????????????牛客网!真有你的!气死我了!!!!!!算是体会到一点程序员的难处了!!!!!!!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!