머리말:
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;
}