移动网站开发服务,app的开发需要多少钱,产业协会建设网站方案,培训网站大全描述
给定一些同学的信息#xff08;名字#xff0c;成绩#xff09;序列#xff0c;请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示#xff1a; jack 70 peter 96 Tom 70 smith 67
从高到低 成…描述
给定一些同学的信息名字成绩序列请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示 jack 70 peter 96 Tom 70 smith 67
从高到低 成绩 peter 96 jack 70 Tom 70 smith 67
从低到高
smith 67
jack 70
Tom 70
peter 96 注0代表从高到低1代表从低到高 数据范围人数1≤n≤200
进阶时间复杂度O(nlogn) 空间复杂度O(n)
输入描述
第一行输入要排序的人的个数n第二行输入一个整数表示排序的方式之后n行分别输入他们的名字和成绩以一个空格隔开
输出描述
按照指定方式输出名字和成绩名字和成绩之间以一个空格隔开 代码
#includebits/stdc.h
using namespace std;struct ac {string name;int score;int num;
} a[205];bool cmp1(ac a, ac b) {if (a.score b.score)return a.num b.num;return a.score b.score;
}bool cmp2(ac a, ac b) {if (a.score b.score)return a.num b.num;return a.score b.score;
}int main() {int n, m, i;cin n m;for (i 0; i n; i) {cin a[i].name a[i].score;a[i].num i;}if (m 0)sort(a, a n, cmp1);elsesort(a, a n, cmp2);for (i 0; i n; i) {cout a[i].name a[i].score endl;}return 0;
}