結果の並べ替え(マシンでのTsinghuaの再テスト)

序文:

21.再テストに参加できるかどうかに関係なく、道路に書かれたゴミコードを記録します。もともと「AlgorithmNotes」をかじったのですが、やりすぎたので、Kingway ComputerTestGuideに変更しました。

タイトル説明:

一次元配列を使用して学生数と成績を保存し、成績順に出力します。

説明を入力してください

入力の最初の行には、学生の数を表す整数N(1 <= N <= 100)が含まれています。
次のN行のそれぞれには、各学生の学生IDと学年を表す2つの整数pとqが含まれています。

出力の説明:

生徒の成績を小さいものから大きいものへと並べ替え、並べ替えた生徒の情報を印刷します。
生徒の成績が同じ場合は、生徒IDのサイズに応じて小さいものから大きいものへと並べ替えられます。

回答

#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