【九度】题目1196:成绩排序
来源:互联网 发布:php 二进制字符串文件 编辑:程序博客网 时间:2024/06/05 12:40
- 题目地址:http://ac.jobdu.com/problem.php?pid=1196
题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出。
- 输入:
输入第一行包括一个整数N(1<=N<=100),代表学生的个数。
接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。
- 输出:
按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。
如果学生的成绩相同,则按照学号的大小进行从小到大排序。
- 样例输入:
31 902 873 92
- 样例输出:
2 871 903 92
- 来源:
- 2009年华中科技大学计算机研究生机试真题
- 所谓的一维数组是不是结构体?
- 我暂且认为是这样吧。
- 这道题是不是和Joddu上所有的涉及成绩排序的基本一样。改改代码就是答案。
- 关键是得知道原理是怎样的。
#include <stdio.h>#include <algorithm>using namespace std;const int maxn = 102; struct Student{ int stuNo; int score;}students[maxn]; int n , i; bool cmp(Student s1 , Student s2){ if(s1.score == s2.score){ return s1.stuNo < s2.stuNo; }else { return s1.score < s2.score; }}int main(){ while(scanf("%d",&n) != EOF){ for(i = 0; i < n; i++){ scanf("%d %d",&students[i].stuNo,&students[i].score); } sort(students, students+n, cmp); for(i = 0; i < n; i++){ printf("%d %d\n",students[i].stuNo,students[i].score); } } return 0;}/************************************************************** Problem: 1196 User: wangzhenqing Language: C++ Result: Accepted Time:40 ms Memory:1020 kb****************************************************************/
Java AC
import java.util.Arrays;import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); Student[] students = new Student[n]; for (int i = 0; i < n; i++) { students[i] = new Student(scanner.nextInt(), scanner.nextInt()); } Arrays.sort(students); for (int i = 0; i < students.length; i++) { System.out.println(students[i].getSeq()+" "+students[i].getScore()); } } } } class Student implements Comparable<Student>{ private int seq; private int score; public Student(int seq, int score) { super(); this.seq = seq; this.score = score; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public int getSeq() { return seq; } public void setSeq(int seq) { this.seq = seq; } public int compareTo(Student o) { if(this.score!=o.score){ return this.score-o.score; }else { return this.seq-o.seq; } } }/************************************************************** Problem: 1196 User: wzqwsrf Language: Java Result: Accepted Time:1950 ms Memory:144068 kb****************************************************************/
- 九度OJ 题目1196:成绩排序
- 【九度】题目1196:成绩排序
- 九度OJ题目1196:成绩排序
- 【九度OJ】题目1196:成绩排序 解题报告
- 【九度】题目1061:成绩排序
- 九度题目1061:成绩排序
- 九度OJ题目1061:成绩排序
- 九度OJ 题目1061:成绩排序
- 九度题目1061:成绩排序
- 【九度】题目1061:成绩排序
- 题目1061:成绩排序 九度OJ
- 九度OJ题目1061:成绩排序
- 九度-1196-成绩排序
- 九度题目1061:成绩排序(多维)
- 【九度OJ】题目1061:成绩排序 解题报告
- 题目1196:成绩排序
- 题目1196:成绩排序
- 题目1196:成绩排序
- 51单片机总结之程序状态字(PSW)
- 无语,遭遇: Error: 605, Severity: 21, State: 3
- 项目5-奇数因子
- ios多线程的几种创建方式
- 通过USB使用手机调试Android程序
- 【九度】题目1196:成绩排序
- linux 系统java(jdk)升级安装
- 2013-12-9 16:59:24
- 互联网精准广告定向技术
- 利用JS代码判断是否手机访问()
- ios7查询摄像头使用权限
- JS判断选择的时间是否大于当前时间
- 自己写的Base64编码
- js获取css属性