결과 정렬 (컴퓨터에서 칭화 다시 테스트)

머리말:

21. 재시험 응모 가능 여부에 관계없이 도로에 쓰인 쓰레기 코드를 기록해 두십시오. 원래는 "알고리즘 노트"를 갉아 먹었지 만 너무 힘들어서 Kingway 컴퓨터 테스트 가이드로 변경했습니다.

제목 설명:

1 차원 배열을 사용하여 학생 수와 성적을 저장 한 다음 성적 순서대로 출력합니다.

설명 입력

입력의 첫 번째 줄에는 학생 수를 나타내는 정수 N (1 <= N <= 100)이 포함됩니다.
다음 N 줄에는 각 학생의 학생 ID와 성적을 나타내는 두 개의 정수 p와 q가 있습니다.

출력 설명 :

학생의 성적을 작은 것부터 큰 것까지 분류하고 분류 된 학생 정보를 인쇄합니다.
학생의 성적이 같은 경우 학생증의 크기에 따라 작은 것부터 큰 것 순으로 정렬됩니다.

대답

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

struct student  {
    
    
	int num;
	int score;
};

bool cmp( student stu1, student stu2) {
    
    
	if (stu1.score != stu2.score) return stu1.score < stu2.score;
	else
		return stu1.num<stu2.num ;
}
int main()
{
    
    
	int n;
	student stu;
	cin >> n;
	vector<student> vi;
	for (int i = 0; i < n; i++) {
    
    
		cin>>stu.num>>stu.score;
		vi.push_back(stu);
	}
	sort(vi.begin(), vi.end(), cmp);
	for (int i = 0; i < n; i++)
		cout << vi[i].num << ' ' << vi[i].score << endl;
	return 0;
}

추천

출처blog.csdn.net/weixin_44897291/article/details/112778337