题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1

#include <bits/stdc++.h>
using namespace std;
typedef struct student{
    int order;
    char name[50];//姓名
    int score;//成绩
}stu; 
bool comp1(stu a,stu b){
     if(a.score == b.score) return a.order < b.order;
    return a.score>b.score;//按照学生的成绩从大到小进行排序
}
bool comp2(stu a,stu b){
     if(a.score == b.score) return a.order < b.order;
    return a.score<b.score;//按照学生的成绩从小到大进行排序
}
int main() {
    int N; 
    stu a[10001];//这里写大些,不然容易越界
    int number;
    while (scanf("%d %d",&N,&number)!=EOF) {  
        
        for(int i=0;i<N;i++){
            scanf("%s %d",a[i].name,&a[i].score);//name是字符数组,首元素即地址,不用加&
            a[i].order=i;
        }
        if(number){sort(a,a+N,comp2);}
        else sort(a, a+N, comp1);
    
    for(int i=0;i<N;i++){
            printf("%s %d\n",a[i].name,a[i].score);

        }
}
}

全部评论

相关推荐

醉蟀:你不干有的是人干
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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