查找和排序
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
Tom 70
jack 70
peter 96
输入描述:
输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开
输出描述:
按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开
输入例子:
3 0 fang 90 yang 50 ning 70
输出例子:
fang 90 ning 70yang 50
#include <iostream> #include <string> using namespace std; int main() { int n; while (cin >> n) { int flag; cin >> flag; int arr[1000]; string str[1000]; for (int i = 0; i < n; i++) cin >> str[i] >> arr[i];//利用cin输入特性依次输入姓名与成绩 int j; for (int i = 0; i < n; i++) { int max = arr[0], min = arr[0]; int x = 0; for (j = 0; j < n; j++) { if (flag == 0) { if (max<arr[j])//找到最大的成绩,并取出下标 { max = arr[j]; x = j; } } else if (flag == 1) { if (min>arr[j]) { min = arr[j]; x = j; } } } cout << str[x] << " " << arr[x] << endl; if (flag == 0) arr[x] = -1; else if (flag == 1) arr[x] = 10000; } } return 0; }