3415:练71.1成绩排序
练 71.1成绩排序
/*
3415:练71.1成绩排序
http://bas.ssoier.cn:8086/problem_show.php?pid=3415
*/
#include <bits/stdc++.h>
using namespace std;
int a[21],n,i,j;
string b[21];
int main()
{
cin>>n;
for(i=1;i<=n;i++)
{
cin>>b[i]>>a[i];
}
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
{
if(( a[i]<a[j])|| ((a[i]==a[j]) && (b[i]>b[j])))
{
swap(a[i],a[j]);
swap(b[i],b[j]);
}
}
}
for(i=1;i<=n;i++)
{
cout<<b[i]<<" "<<a[i]<<endl;
}
return 0;
}
/*
1.10编程基础之简单排序_03成绩排序
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
输入
第一行为n (0 < n < 20),表示班里的学生数目;
接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。
输出
把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。
样例输入
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28
样例输出
Joey 92
Hanmeimei 90
Kitty 80
Tim 28
来源
习题(14-1)
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct stu
{
string name;
int score;
}tot[20];
bool cmp(stu, stu);
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> tot[i].name >> tot[i].score;
sort(&tot[0], &tot[n], cmp);
for (int i = 0; i < n; i++)
cout << tot[i].name << " " << tot[i].score << endl;
return 0;
}
bool cmp(stu s1, stu s2)
{
if (s1.score > s2.score)
return true;
else
if (s1.score == s2.score && s1.name < s2.name)
return true;
else
return false;
}
《信息学奥赛一本通 编程启蒙 C++版》 3441-3450(8题)
《信息学奥赛一本通 编程启蒙C++版》3451-3456(5题)
《信息学奥赛一本通 编程启蒙C++版》3456-3460(5题)
《信息学奥赛一本通 编程启蒙C++版》3456-3460(5题)_3460:【例83.4】最大公约数和最小公倍数-CSDN博客
《信息学奥赛一本通 编程启蒙 C++版》 3451-3460(10题)
《信息学奥赛一本通 编程启蒙 C++版》 3451-3460(10题)_3452:【例82.2】 座次问题-CSDN博客
《信息学奥赛一本通 编程启蒙C++版》3461-3465(5题)
《信息学奥赛一本通 编程启蒙C++版》3466-3470(5题)
《信息学奥赛一本通 编程启蒙 C++版》 3461-3470(10题)