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;
    }
}
全部评论
考虑下stable_sort
1 回复 分享
发布于 2021-05-05 22:17
测试用例错误,测试输入只输入三个数,预期结果却是十组数的排列
5 回复 分享
发布于 2021-02-28 15:55
自带的sort是非稳定排序,题目要求是稳定排序
3 回复 分享
发布于 2021-03-20 21:07
是不是数组越界了,我刚才也是数组长度为100,结果测试了117个数据
3 回复 分享
发布于 2022-02-14 10:50
漏了一个题设:注意一个case里面有多组样例。你这个只是测试一个例子
2 回复 分享
发布于 2021-06-08 14:43
我之前也是100太少了 用了1000就过了 学生数量少了
1 回复 分享
发布于 2023-01-17 09:43 河北
不可以用sort非稳定排序,题目要求的是稳定排序
点赞 回复 分享
发布于 2021-07-05 18:31
sort可以弄成stable的,struct中加入参数ans,表示先后
点赞 回复 分享
发布于 2022-03-04 10:11
必须要用稳定排序,sort是快排不稳定,只能用stable_sort
点赞 回复 分享
发布于 2022-05-13 19:58
加个while就行了,牛客网不是LeetCode,需要自己添加
点赞 回复 分享
发布于 01-26 14:10 山东

相关推荐

8 收藏 评论
分享
牛客网
牛客企业服务