玩命加载中 . . .

成绩排序


http://t.cn/E9d3ysv

描述

用一维数组存储学号和成绩,然后,按成绩排序输出。

输入描述:

输入第一行包括一个整数N(1<=N<=100),代表学生的个数。 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。

输出描述:

按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。 如果学生的成绩相同,则按照学号的大小进行从小到大排序。

示例1

输入:

3
1 90
2 87
3 92

输出:

2 87
1 90
3 92
#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;

struct Student
{
	int number; //学号
	int score; //成绩
};

const int N = 100;

Student arr[N];

bool Compare(Student x, Student y) {
	if (x.score == y.score)
		return x.number < y.number; //成绩相等比较学号
	else
		return x.score < y.score; //成绩不等比较成绩
}

int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; ++i)
		cin >> arr[i].number >> arr[i].score;
	sort(arr, arr + n, Compare);
	for (int i = 0; i < n; ++i)
		printf("%d %d\n", arr[i].number, arr[i].score);
	return 0;
}

文章作者: Jack Tim
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Tim !
评论
  目录