zoukankan      html  css  js  c++  java
  • 牛客网计算机考研复试-KY9-成绩排序

    题目链接:点这里


    题目描述:
    用一维数组存储学号和成绩,然后,按成绩排序输出。


    思路:
    对结构体排序就行了。
    这里自己第一遍写的犯了一个错,对把学号id定义为了string类型,在排序的时候导致了错误,因为字符串比较的时候是从左到右按照ASCII码比较,当比较"13"和"9"的时候,反而"9">"13",所以如果题目里的学生id长度相同的时候,定义成string比较也可以,如果不同,则需要用int。

    另外“asdf”<“asdfer”,因为字符串结尾多余的一个字节用来保存一个空字节,也就是ASCII等于0的字符‘’,用于表示字符串的结尾,在比较第4字符时,‘e’的ASCII大于0,故第二个字符串大。


    代码:

    #include <bits/stdc++.h>
    using namespace std;
    struct student{
        int id;
        int score;
    }s[102];
    
    bool cmp(student a,student b){
        if(a.score<b.score)
            return true;
        else if(a.score==b.score && a.id<b.id)
            return true;
        else
            return false;
    }
    
    int main(){
        string s1 = "9";
        string s2 = "90";
        int n;
        cin >> n;
        for(int i=0;i<n;i++)
            cin >> s[i].id >> s[i].score;
        sort(s,s+n,cmp);
        for(int i=0;i<n;i++)
            cout << s[i].id << " " << s[i].score << endl;
        return 0;
    }
    
  • 相关阅读:
    DQL、DML、DDL、DCL的概念与区别
    TeamViewer
    构建属于自己的ORM框架之二--IQueryable的奥秘
    某考试 T2 sum
    某考试 T1 line
    bzoj 2153: 设计铁路
    [SCOI2010]序列操作
    [SCOI2010]字符串
    [SCOI2010]传送带
    bzoj 2694: Lcm
  • 原文地址:https://www.cnblogs.com/123-wind/p/14316842.html
Copyright © 2011-2022 走看看