KY2 成绩排序 自测结果是对的,但是不知道为什么牛客网批改为错误

成绩排序

http://www.nowcoder.com/questionTerminal/0383714a1bb749499050d2e0610418b1

# include<iostream>
# include<algorithm>
using namespace std;

struct Student{
    string name;
    int score;
};

bool Ascending(Student stu1,Student stu2){
        return stu1.score<stu2.score;
};
bool Descending(Student stu1,Student stu2){
    return stu1.score>stu2.score;
};

int main(){

    int n;
    int method;
    Student student[100];
    //cout<<"请输入学生人数";
    cin>>n;
    //cout<<"请输入排序方法0(降序)或者1(升序)";
    cin>>method;
    for(int i=0;i<n;i++){
        cin>>student[i].name>>student[i].score;
    };     
    if(method==1){
        sort(student,student+n,Ascending);
    }
    else if(method==0){
        sort(student,student+n,Descending);
    }
    else cout<<"排序方法输入错误"
    ;
    for(int i=0;i<n;i++){
        cout<<student[i].name<<" "<<student[i].score<<endl;
    }
}
全部评论
测试用例错误,测试输入只输入三个数,预期结果却是十组数的排列
5 回复 分享
发布于 2021-02-28 15:55
是不是数组越界了,我刚才也是数组长度为100,结果测试了117个数据
4 回复 分享
发布于 2022-02-14 10:50
自带的sort是非稳定排序,题目要求是稳定排序
3 回复 分享
发布于 2021-03-20 21:07
漏了一个题设:注意一个case里面有多组样例。你这个只是测试一个例子
2 回复 分享
发布于 2021-06-08 14:43
考虑下stable_sort
2 回复 分享
发布于 2021-05-05 22:17
我之前也是100太少了 用了1000就过了 学生数量少了
1 回复 分享
发布于 2023-01-17 09:43 河北
加个while就行了,牛客网不是LeetCode,需要自己添加
点赞 回复 分享
发布于 2024-01-26 14:10 山东
必须要用稳定排序,sort是快排不稳定,只能用stable_sort
点赞 回复 分享
发布于 2022-05-13 19:58
sort可以弄成stable的,struct中加入参数ans,表示先后
点赞 回复 分享
发布于 2022-03-04 10:11
不可以用sort非稳定排序,题目要求的是稳定排序
点赞 回复 分享
发布于 2021-07-05 18:31

相关推荐

爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
8
收藏
分享

创作者周榜

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