zoukankan      html  css  js  c++  java
  • 1028 List Sorting 排序

    1028 List Sorting (25 分)

    Excel can sort records according to any column. Now you are supposed to imitate this function.

    Input Specification:

    Each input file contains one test case. For each case, the first line contains two integers N (105​​) and C, where N is the number of records and C is the column that you are supposed to sort the records with. Then N lines follow, each contains a record of a student. A student's record consists of his or her distinct ID (a 6-digit number), name (a string with no more than 8 characters without space), and grade (an integer between 0 and 100, inclusive).

    Output Specification:

    For each test case, output the sorting result in N lines. That is, if C = 1 then the records must be sorted in increasing order according to ID's; if C = 2 then the records must be sorted in non-decreasing order according to names; and if C = 3 then the records must be sorted in non-decreasing order according to grades. If there are several students who have the same name or grade, they must be sorted according to their ID's in increasing order.

    Sample Input 1:

    3 1
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    

    Sample Output 1:

    000001 Zoe 60
    000007 James 85
    000010 Amy 90
    

    Sample Input 2:

    4 2
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    000002 James 98
    

    Sample Output 2:

    000010 Amy 90
    000002 James 98
    000007 James 85
    000001 Zoe 60
    

    Sample Input 3:

    4 3
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    000002 James 90
    

    Sample Output 3:

    000001 Zoe 60
    000007 James 85
    000002 James 90
    000010 Amy 90

    思路:
      这个题与其说是考察排序,不如说是考察char数组和string之间的转换,如果使用cin输入会超时
    #include<iostream>
    #include<vector>
    #include<string>
    #include<algorithm>
    #include<stdlib.h>
    using namespace std;
    
    struct Student
    {
        string id;
        string name;
        int score;
    };
    
    bool cmp1(Student&A,Student&B)
    {
        return A.id<B.id;
    }
    
    bool cmp2(Student&A,Student&B)
    {
        return A.name==B.name?A.id<B.id:A.name<B.name;
    }
    
    bool cmp3(Student&A,Student&B)
    {
        return A.score==B.score?A.id<B.id:A.score<B.score;
    }
    
    
    int main()
    {
        int n,c;
        cin>>n>>c;
        Student stu[n];
        for(int i=0; i<n; i++)
        {
            char id[10],name[20];
            scanf("%s%s%d",id,name,&stu[i].score);
            stu[i].id=string(id);
            stu[i].name=string(name);
    
        }
        if(c==1)
        {
            //qsort(stu,n,sizeof(Student),cmp1);
            sort(stu,stu+n,cmp1);
        }
        else if(c==2)
        {
            sort(stu,stu+n,cmp2);
        }
        else
            sort(stu,stu+n,cmp3);
        for(int i=0; i<n; i++)
        {
            printf("%s %s %d
    ",stu[i].id.c_str(),stu[i].name.c_str(),stu[i].score);
            //cout<<stu[i].id<<" "<<stu[i].name<<" "<<stu[i].score<<endl;
    
        }
        return 0;
    }
     
  • 相关阅读:
    app ios info权限配置:
    ionic3 小记录
    mipush ionic3 线上push
    ionic3 生命周期 之 ionViewWillLeave 坑
    iphone X 底部留白 之 ionic3 项目
    微信小程序 修改手机状态栏颜色
    git 命令
    微信小程序 下拉加载
    js 判断浏览器型号
    关于 ionic3 tabs 导航ico 点击 页面返回顶部
  • 原文地址:https://www.cnblogs.com/zhanghaijie/p/10295908.html
Copyright © 2011-2022 走看看