成绩排序

题目描述

查找和排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
      都按先录入排列在前的规则处理。

例示:
   jack      70
   peter     96
   Tom       70
   smith     67

从高到低  成绩            
   peter     96    
   jack      70    
   Tom       70    
   smith     67

从低到高

smith     67

Tom       70    
   jack      70    
   peter     96

输入描述:

输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开

输出描述:

按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

我的代码:

import java.util.*;
import java.lang.*;
public class Main{
  public void main (String[] args){
    System.out.println("请输入人数:");
    Scanner input=new Scanner(System.in);
    int n=input.nextInt();
    System.out.println("请输排序方式,0或1:");
    int sort=input.nextInt();
    if(n==0){
      return;
    }else{
      Person[] persons=new Person[100];
      for(int i=0;i<n;i++){
        String str=input.nextLine();
        String[] ss=str.split(" ");
        int a=Integer.parseInt(ss[1]);
        persons[i].set(ss[0],a);
      }
      Person temp=new Person();
      if(sort==1){
        for(int i=0;i<n-1;i++){
          for(int j=0;j<n-1-i;j++){
            if(persons[j].grade>persons[j+1].grade){
              temp=persons[j];
              persons[j]=persons[j+1];
              persons[j+1]=temp;
            }
          }
        }
      }
      else{
        for(int i=0;i<n-1;i++){
          for(int j=0;j<n-1-i;j++){
            if(persons[j].grade<persons[j+1].grade){
              temp=persons[j];
              persons[j]=persons[j+1];
              persons[j+1]=temp;
            }
          }
        }
      }
      for(int i=0;i<n;i++){
      System.out.println(persons[i].name+" "+persons[i].grade);
     }
    }
  }
}
class Person{
  String name;
  int grade;
  public void set(String name,int grade){
    this.name=name;
    this.grade=grade;
  }
}

时间: 2024-08-08 03:08:21

成绩排序的相关文章

03:成绩排序

03:成绩排序 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前. 输入 第一行为n (0 < n < 20),表示班里的学生数目:接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开.名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数. 输出 把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格.

题目1196:成绩排序

题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N<=100),代表学生的个数. 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出: 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来. 如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入: 3 1 90 2 87 3 92 样例输出: 2 87 1 90 3 92 C++代码: #include<iostream> #includ

九度oj 题目1061:成绩排序

题目1061:成绩排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:24473 解决:6960 题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息. 输入: 测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据.    每个学生的数据包括姓名(长度不超过100的字符串).年龄(整形数).成绩(小于等于100的正数). 输出: 将学

九度oj 题目1196:成绩排序

题目1196:成绩排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5192 解决:1792 题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N<=100),代表学生的个数.接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出: 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来.如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入: 3 1 90 2 87 3 92 样例输出: 2

查询每门学科成绩在前2位的记录,并按学科,成绩排序

现在有学生成绩表,结构如下 Create Table StuAchievement ( StuId varchar(8), CourseId varchar(10), Achievement int ) 数据就自己动动手录入吧 SELECT * FROM StuAchievement A WHERE EXISTS( SELECT TOP 1 * FROM StuAchievement b WHERE a.CourseId=b.CourseId AND b.Achievement >a.Achie

实验12:Problem I: 成绩排序

Home Web Board ProblemSet Standing Status Statistics Problem I: 成绩排序 Problem I: 成绩排序 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 490  Solved: 403[Submit][Status][Web Board] Description 定义Student类: 1. 数据成员string name和int score表示一个学生的姓名.成绩. 2. 无参构造函

14周(二维数组姓名成绩排序)

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:14周(二维数组姓名成绩排序) *作者:王忠 *完成日期:2014.12.01 *版本号:v1.0 * *问题描述:初始化同学的成绩,姓氏,按大小排序 *输入描述:无 *程序输出:按照姓名或者成绩大小排序并输出 #include <iostream> #include <string> using namespace std; const int num=8; i

1196.成绩排序

题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N<=100),代表学生的个数. 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. 输出: 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来. 如果学生的成绩相同,则按照学号的大小进行从小到大排序. 样例输入: 3 1 90 2 87 3 92 样例输出: 2 87 1 90 3 92 #include<iostream> #include<al

刷题1:成绩排序

刷题1:成绩排序 来源:https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1 题目: 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理. 示例: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 jack 70 Tom