题目1196:成绩排序
来源:互联网 发布:剑三最美喵萝脸型数据 编辑:程序博客网 时间:2024/05/21 00:21
练习一下基本的排序方法:题目来源九度oj
算法的设计思想:结构体存储学号和成绩,结构体的二级排序。第一种方法简单的泡排序,成绩大的在后面;成绩相等时学号大的在后面。
第二种方法用sort排序。
题目:
- 题目描述:
用一维数组存储学号和成绩,然后,按成绩排序输出。
- 输入:
输入第一行包括一个整数N(1<=N<=100),代表学生的个数。
接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。
- 输出:
按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。
如果学生的成绩相同,则按照学号的大小进行从小到大排序。
- 样例输入:
31 902 873 92
- 样例输出:
2 871 903 92
#include <iostream>#include <stdio.h>using namespace std;struct node{ int num; int score;} stu[101] ;int main(){ int n; int i,j; while(scanf("%d",&n)!=EOF) { for(i=0; i<n; i++) { scanf("%d %d",&stu[i].num,&stu[i].score); } for(i=0; i<n; i++) { for(j=0; j<n-1-i; j++) { if((stu[j].score>stu[j+1].score) || (stu[j].score==stu[j+1].score)&&(stu[j].num>stu[j+1].num)) { int temp=stu[j].score; stu[j].score=stu[j+1].score; stu[j+1].score=temp; temp=stu[j].num; stu[j].num=stu[j+1].num; stu[j+1].num=temp; } } } for(i=0; i<n; i++) { printf("%d %d\n",stu[i].num,stu[i].score); } } return 0;}
方法二代码实现:
#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;struct node{ int num; int score; bool operator < (const node& other)const { if(score!=other.score) return score <other.score; return num < other.num; }} stu[101] ;int main(){ int n; int i,j; while(scanf("%d",&n)!=EOF) { for(i=0; i<n; i++) { scanf("%d %d",&stu[i].num,&stu[i].score); } sort(stu,stu+n); for(i=0; i<n; i++) { printf("%d %d\n",stu[i].num,stu[i].score); } } return 0;}
0 0
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 九度OJ 题目1196:成绩排序
- 【九度】题目1196:成绩排序
- 九度OJ题目1196:成绩排序
- 题目2:成绩排序
- 题目1061:成绩排序
- 题目1061:成绩排序
- 题目1061:成绩排序
- 题目1061:成绩排序
- 题目1061:成绩排序
- 题目1061:成绩排序
- jquery ajax 二级联动
- React Native之组件请求网络数据
- Nginx负载均衡与高可用的实现
- 理解java的三大特性之继承
- python生成随机函数
- 题目1196:成绩排序
- java 中的多态
- javaweb学习之xml(1)
- win32下的函数调用约定
- 随笔
- Json字符串格式化
- javaScript之typeof测试
- android fragment 最常用初体验
- KenDoGrid中使用checkbox