题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1

//土尔逊Torson 编写于2023/4/11
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <algorithm>
#include <stdlib.h>

using namespace std;

struct student {
	char name[50];
	int grade;
	int seq;
};

bool comp0(student left, student right) {
	if (left.grade > right.grade) {
		return true;
	}
	else if (left.grade == right.grade && left.seq < right.seq) {
		return true;
	}
	else {
		return false;
	}
}

bool comp1(student left, student right) {
	if (left.grade < right.grade) {
		return true;
	}
	else if (left.grade == right.grade && left.seq < right.seq) {
		return true;
	}
	else {
		return false;
	}
}

int main() {
	int n;
	int order;
	student arr[1000];
	while (scanf("%d%d", &n, &order) != EOF) {
		int seq = 0;
		for (int i = 0; i < n; ++i) {
			scanf("%s %d", &arr[i].name, &arr[i].grade);
			arr[i].seq = seq;
			++seq;
		}

		if (0 == order) {
			sort(arr, arr + n, comp0);
		}
		else {
			sort(arr, arr + n, comp1);
		}

		for (int j = 0; j < n; ++j) {
			printf("%s %d\n", arr[j].name, arr[j].grade);
		}
	}
	system("pause");
	return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

Wy_m:只要不是能叫的上名的公司 去实习没有任何意义 不如好好沉淀自己
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务