• PAT 1028 List Sorting (25)


    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<queue>
    #include<vector>
    #include<cmath>
    #include<iomanip>
    #include<algorithm>
    using namespace std;
    
    
    struct Student
    {
    	char stu_id[15];
    	char strName[15];
    	int score;
    };
    
    Student arrStu[100000+5];
    
    int C;
    
    bool greaterMark(const Student &stu1, const Student &stu2)
    {
    	if(C == 1)
    	{
    		return strcmp(stu1.stu_id,stu2.stu_id)<0;
    	}
    	else if(C == 2)
    	{
    		if(strcmp(stu1.strName,stu2.strName) != 0)
    			return strcmp(stu1.strName,stu2.strName) < 0;
    		else
    			return strcmp(stu1.stu_id,stu2.stu_id) < 0;
    	}
    	else if(C == 3)
    	{
    		if(stu1.score != stu2.score)
    			return stu1.score < stu2.score;
    		else 
    			return strcmp(stu1.stu_id,stu2.stu_id) < 0;
    	}
    }
    
    void optput(int N)
    {
    	for(int i=0; i<N; i++)
    		cout<<arrStu[i].stu_id<<" "<<arrStu[i].strName<<" "<<arrStu[i].score<<endl;
    }
    
    int main()
    {	
    	int N;
    	scanf("%d %d",&N,&C);
    	Student stu;
    	for(int i=0; i<N; i++)
    	{
    		scanf("%s",arrStu[i].stu_id);
    		scanf("%s",arrStu[i].strName);		
    		scanf("%d",&arrStu[i].score);
    	}
    	sort(arrStu,arrStu + N, greaterMark);
    	optput(N);
    	return 0;
    }
    

      

    多学习,多总结。
  • 相关阅读:
    HTML超链接应用场景
    String 字符串和StringBuffer的知识点总结
    猜数游戏代码
    MemoryLayout
    偏swift框架
    git的使用
    寄存器
    swift基础
    枚举
    安装Ubuntu 20.04 以后
  • 原文地址:https://www.cnblogs.com/yanhaiming/p/2813384.html
Copyright © 2020-2023  润新知