首页 > 试题广场 >

成绩排序

[编程题]成绩排序
  • 热度指数:220788 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩

都按先录入排列在前的规则处理。

例示:
jack      70
peter     96
Tom       70
smith     67

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

从低到高

smith     67

jack      70

Tom       70
peter     96

注:0代表从高到低,1代表从低到高

数据范围:人数:
进阶:时间复杂度:,空间复杂度:

输入描述:

第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开



输出描述:

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

示例1

输入

3
0
fang 90
yang 50
ning 70

输出

fang 90
ning 70
yang 50
示例2

输入

3
1
fang 90
yang 50
ning 70

输出

yang 50
ning 70
fang 90
//思路:利用结构体来进行存储,排序规则自定义compare函数,调用sort即可。
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
typedef struct Data
{
    int id;
    string name;
    int value;
};

bool compare0(Data d1,Data d2)//降序
{
    if(d1.value==d2.value)
        return d1.id<d2.id;
    return d1.value>d2.value;
}

bool compare1(Data d1,Data d2)//升序
{
    if(d1.value==d2.value)
        return d1.id<d2.id;
    return d1.value<d2.value;
}
int main()
{
    int n,flag;
    while(cin>>n>>flag)
    {
        vector<Data>dvec;
        int id=1;
        string name;
        int value;
        Data data;
        for(int i=0;i<n;++i)
        {
            cin>>name>>value;
            data.id=id++;
            data.value=value;
            data.name=name;
            dvec.push_back(data);
        }
        if(flag==0)
            sort(dvec.begin(),dvec.end(),compare0);
        else
            sort(dvec.begin(),dvec.end(),compare1);
        for(int i=0;i<n;++i)
            cout<<dvec[i].name<<" "<<dvec[i].value<<endl;
	}
    return 0;
}

编辑于 2017-05-04 19:28:15 回复(3)
归并排序,因为要求时间复杂度nlogn,稳定
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
vector<pair<string,int>> tmp;
void merge1(vector<pair<string,int>>& arr,int left,int mid,int right){
    int l=left,r=mid+1,idx=l;
    while(l<=mid && r<=right){
        if(arr[l].second<=arr[r].second){
            tmp[idx++]=arr[l++];
        }else{
            tmp[idx++]=arr[r++];
        }
    }
    while(l<=mid){
        tmp[idx++]=arr[l++];
    }
    while(r<=right){
        tmp[idx++]=arr[r++];
    }
    for(int i=left;i<=right;i++){
        arr[i]=tmp[i];
    }
}

void merge2(vector<pair<string,int>>& arr,int left,int mid,int right){
    int l=left,r=mid+1,idx=l;
    while(l<=mid && r<=right){
        if(arr[l].second>=arr[r].second){
            tmp[idx++]=arr[l++];
        }else{
            tmp[idx++]=arr[r++];
        }
    }
    while(l<=mid){
        tmp[idx++]=arr[l++];
    }
    while(r<=right){
        tmp[idx++]=arr[r++];
    }
    for(int i=left;i<=right;i++){
        arr[i]=tmp[i];
    }
}

void mergesort(vector<pair<string,int>>& arr,int left,int right,int method){
    if(left>=right) return;
    int mid=left+(right-left)/2;
    mergesort(arr, left, mid, method);
    mergesort(arr, mid+1, right, method);
    if(method) merge1(arr,left,mid,right);//从低到高
    else merge2(arr,left,mid,right);//从高到低
    
}

int main() {
    int n,method;
    cin>>n>>method;
    vector<pair<string, int>> arr;
    tmp=vector<pair<string,int>>(n);
    while(n--){
        string name;int core;
        cin>>name>>core;
        arr.push_back({name,core});
    }
    mergesort(arr, 0, arr.size()-1, method);
    for(auto p:arr){
        cout<<p.first<<' '<<p.second<<endl;
    }
    return 0;
}


发表于 2022-08-03 15:39:27 回复(0)
import java.util.*;
public class Main{
    static class Student{
        private String name;
        private Integer res;
        public Student(String name,Integer res){
            this.name = name;
            this.res = res;
        }
        public String getName(){
            return this.name;
        }
        public Integer getRes(){
            return this.res;
        }
        public void out(){
            System.out.println(this.name+" "+this.res);
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            int flag = sc.nextInt();
            List<Student> list = new ArrayList<Student>();
            for(int i =0 ;i < n; i++){
                String name = sc.next();
                int res = sc.nextInt();
                list.add(new Student(name,res));
            }
            for(int i = 0; i< list.size()-1; i++ ){
                for(int j =0; j< list.size()-1-i; j++){
                    if( flag ==1?list.get(j).getRes()>list.get(j+1).getRes():
                       list.get(j).getRes()<list.get(j+1).getRes()){
                        Student tmp = list.get(j);
                        list.set(j,list.get(j+1));
                        list.set(j+1,tmp);
                    }
                }
            }
            for(Student s:list){
                s.out();
            }
        }
    }
}
以上.

发表于 2022-02-24 18:12:35 回复(0)
flag设为全局变量,一次cmp
#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;

struct Student{
    string name;
    int score;
    int index;
};
int flag;

bool cmp(Student a, Student b){
    if(flag == 1 && a.score!=b.score) return a.score<b.score;
    else if(flag == 0 && a.score!=b.score) return a.score>b.score;
    return a.index< b.index;
}

int main(){
    int n;
    while(cin>>n){
        int score;
        string name;
        cin>>flag;
        vector<Student> stu;
        for(int i=0;i<n;i++){
            cin>>name>>score;
            stu.push_back({name,score,i});
        }
        sort(stu.begin(),stu.end(),cmp);
        for(int i=0;i<n;i++)
            cout<<stu[i].name<<' '<<stu[i].score<<endl;
    }
}

发表于 2022-01-12 21:03:57 回复(0)
//使用Arrays的sort排序,重写比较方法
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            int pattern=sc.nextInt();
            String[][] table=new String[n][2];
            for(int i=0;i<n;++i){
                table[i][0] = sc.next();
                table[i][1] = sc.next();
            }
            MyComparator1 myCom1=new MyComparator1();
            MyComparator2 myCom2=new MyComparator2();
            Arrays.sort(table,pattern==1?myCom1:myCom2);
            for(int i=0;i<n;++i){
                System.out.print(table[i][0]+" "+table[i][1]);
                System.out.println();
            }
        }
    }
}
class MyComparator1 implements Comparator<String[]>{
    public int compare(String[] s1, String[] s2){
        return Integer.parseInt(s1[1])-Integer.parseInt(s2[1]);
    }
}
class MyComparator2 implements Comparator<String[]>{
    public int compare(String[] s1, String[] s2){
        return Integer.parseInt(s2[1])-Integer.parseInt(s1[1]);
    }
}
发表于 2021-05-24 21:04:07 回复(0)
import java.util.Scanner;
import java.util.Arrays;

/* 成绩排序,重写字符串排序比较器*/
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (in.hasNextLine()) {
            int n = Integer.parseInt(in.nextLine());
            int order = Integer.parseInt(in.nextLine());

            String[] arr = new String[n];
            for (int i = 0; i < n; i++)
                arr[i] = in.nextLine();

            Arrays.sort(arr, (s1, s2) -> {
                int i1 = Integer.parseInt(s1.split(" ")[1]);
                int i2 = Integer.parseInt(s2.split(" ")[1]);
                return order == 0 ? i2 - i1 : i1 - i2;
            });

            for (String s : arr)
                System.out.println(s);
        }

        in.close();
    }
}

编辑于 2021-04-12 15:14:08 回复(0)
直接读入一条条记录到成绩列表中,一条记录用(顺序号,姓名,成绩)这个三元组来表示。然后对成绩列表的成绩和顺序号进行二次排序就可以了。
while True:
    try:
        n = int(input())
        method = int(input())
        scores = []
        for i in range(n):
            name, score = input().strip().split()
            score = int(score)
            scores.append([i, name, score])
        sign = -1 if method == 0 else 1
        scores = sorted(scores, key=lambda x: [sign*x[-1], x[0]])
        for record in scores:
            print(f"{record[1]} {record[2]}")
    except:
        break
发表于 2021-03-24 17:56:26 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int num = scanner.nextInt();
            int order = scanner.nextInt();
            List<Integer> grades = new ArrayList<>();
            List<String>[] names = new ArrayList[101];
            for (int i = 0; i < num; i++){
                String name = scanner.next();
                int grade = scanner.nextInt();
                grades.add(grade);
                if (names[grade] == null){
                    names[grade] = new ArrayList<>();
                }
                names[grade].add(name);
            }
            Collections.sort(grades, new Comparator<Integer>(){
                public int compare(Integer entry1, Integer entry2){
                    if (order == 0){
                        return entry2 - entry1;
                    }else{
                        return entry1 - entry2;
                    }
                }
            });
            for (Integer e : grades){
                System.out.println(names[e].get(0) + " " + String.valueOf(e));
                names[e].remove(0);
            }
        }
    }
}

发表于 2021-01-29 14:18:54 回复(0)

Python 解法

if __name__ == "__main__":
    while True:
        try:
            n = int(input())
            t = int(input())
            data = [input().strip().split() for i in range(n)]
            data.sort(key=lambda x: int(x[1]),reverse = not t)#排序的关键字是int(x[1]),直接x[1]会报错
            for l in data:
                print(" ".join(l))
        except:
            break
发表于 2020-09-22 23:34:11 回复(0)
自己利用造对象的方式通过了。
import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int len=sc.nextInt();
            int sort=sc.nextInt();
            Set<Person> set=new TreeSet<>(new Comparator<Person>() {
                @Override
                public int compare(Person o1, Person o2) {
                    if (sort==0){
                        if(o1.score!=o2.score)
                            return -(o1.score-o2.score);
                        else return 1;//return 1表示分数相同时,按照插入顺序添加对象
                    }else {
                        if(o1.score!=o2.score)
                             return o1.score-o2.score;
                        else return 1;
                    }

                }
            });

            for(int i=0;i<len;i++){
                set.add(new Person(sc.next(),sc.nextInt()));
            }

            for(Person p:set){
                System.out.println(p.name+" "+p.score);
            }
        }
    }
}

class Person{
    public String name;
    public int score;
    public Person(String name,int score){
        this.name=name;
        this.score=score;
    }
}


发表于 2020-08-27 21:19:44 回复(0)
定义一个类,存放姓名和成绩,然后定义两个比较函数,调用带谓词的sort排序即可。
需要注意的是,因为成绩相同时,排名次序不能变,因此需要用稳定排序,不能用sort,改成stable_sort即可。

代码:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

class Student{
public:
    Student(){};
    Student(string s, int i):name(s),soc(i){}
    Student(const Student &st)
    {
        this->name = st.name;
        this->soc = st.soc;
    }
    
    static bool myup(const Student &s1, const Student &s2)
    {
        return s1.soc < s2.soc;
    }

    static bool mydown(const Student &s1, const Student &s2)
    {
        return s1.soc > s2.soc;
    }
    
    string name;
    int soc;
};


int main()
{
    int num, flag;
    while(cin >> num)
    {
        cin >> flag;
        vector<Student> arr(num);
        for(int i = 0; i < num; i++)
            cin >> arr[i].name >> arr[i].soc;
        
        if(flag)
            stable_sort(arr.begin(), arr.end(), Student::myup);
        else
            stable_sort(arr.begin(), arr.end(), Student::mydown);
        
        for(int i = 0; i < arr.size(); i++)
            cout << arr[i].name <<" "<< arr[i].soc << endl;
    }

    return 0;
}


编辑于 2020-07-27 18:26:10 回复(0)
import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String csbr;
        while((csbr=br.readLine())!=null){
            int n = Integer.parseInt(csbr);
            int mathod = Integer.parseInt(br.readLine());
            LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
            for(int i=0;i<n;i++){
                String[] ss = br.readLine().split(" ");
                String name=ss[0];
                int score = Integer.parseInt(ss[1]);
                map.put(name+" "+score,score);
            }
            ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
            Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){
                public int compare(Map.Entry<String,Integer> s1,Map.Entry<String,Integer> s2){
                    if(mathod==0){
                        return -(s1.getValue()-s2.getValue());
                    }
                    return s1.getValue()-s2.getValue();
                }
            });
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i).getKey());
            }
        }
    }  
}

发表于 2020-07-13 19:17:19 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main(){
    for(int n,p;cin>>n>>p;){
        vector<pair<string,int>> vec(n);
        for(auto &user:vec) cin>>user.first>>user.second;
        if(!p) stable_sort(vec.begin(),vec.end(),
                [](const pair<string,int>& p1, const pair<string,int>& p2){return p1.second > p2.second;});
        else stable_sort(vec.begin(),vec.end(),
               [](const pair<string,int>& p1, const pair<string,int>& p2){return p1.second < p2.second;});
        for(auto user:vec) cout << user.first << ' ' << user.second << endl;
    }
}
    😑4ms
发表于 2020-06-27 12:46:48 回复(0)
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

void display(const pair<int, vector<string>>& p)
{
    const vector<string> & v = p.second;
    for (const auto &name : v) {
        cout <<  name << " " << p.first << endl;
    }
}

int main(void)
{
    int n;
    int flag;
    string name;
    int score;

    map<int, vector<string>> mapScore;
    while (cin >> n >> flag) {
        mapScore.clear();
        while (n--) {
            cin >> name >> score;
            mapScore[score].push_back(name);
        }
        if (flag == 0) { // 从大到小
            for_each(mapScore.rbegin(), mapScore.rend(), display);
        } else if (flag == 1) { //从小到大
            for_each(mapScore.begin(), mapScore.end(), display);
        }
    }
    return 0;
}

编辑于 2020-06-20 15:06:12 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n=sc.nextInt();
            int b=sc.nextInt();
            LinkedHashMap<String,Integer> map = new LinkedHashMap<String,Integer>();
            for (int i = 0; i <n ; i++) {
                String name=sc.next();
                int score=sc.nextInt();
                map.put(name+" "+score,score);
            }
            //用键值对排序
            List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
            if(b==0){//降序
                Collections.sort(list, (o1,o2)->(o2.getValue()-o1.getValue()));
            }else if(b==1){//升序
                Collections.sort(list, (o1,o2)->(o1.getValue()-o2.getValue()));
            }
            for(Map.Entry<String, Integer> entry:list){
                System.out.println(entry.getKey());
            }
        }
        sc.close();
    }

}

发表于 2020-03-20 18:41:03 回复(2)
#include<vector>
(721)#include<string>
#include<iostream>
(720)#include<stdlib.h>
#include<algorithm>
using namespace std;

typedef struct student
{
	string name;
	int score;
};

void  Grade_Sort(vector<student> &ans,int &sort_flag)
{
	//  执行成绩排序

	student temp;
	for (int i = 0; i < ans.size() - 1; i++)
	{
		for (int j = 0; j < ans.size() - 1; j++)
		{
			if (sort_flag)
			{
				if (ans[j].score > ans[j+1].score)
				{
					temp = ans[j];
					ans[j] = ans[j + 1];
					ans[j + 1] = temp;
				}
			}
			else
			{
				if (ans[j].score < ans[j + 1].score)
				{
					temp = ans[j];
					ans[j] = ans[j + 1];
					ans[j + 1] = temp;
				}
			}
		}
	}
}

int main()
{
	vector<student> ans;
	int num;
	student  stu;
	int sort_flag;
	while (cin >> num)
	{
		cin >> sort_flag;
		for (int i = 0; i < num; i++)
		{
			cin >> stu.name >> stu.score;
			ans.push_back(stu);
		}

		Grade_Sort(ans, sort_flag);

		//循环打印
		for (auto it = ans.begin(); it != ans.end(); it++)
		{
			cout << it->name << ' ' << it->score << endl;
		}
		// 清空容器
		ans.clear();
	}
	system("pause");
	return 0;
}

发表于 2020-03-07 19:25:56 回复(1)

用map和map<greater>分别装一下就行了,让他自己排序</greater>

#include<iostream>
(720)#include<map>

using namespace std;

int main() {
    int num;
    while(cin >> num) {
        int mod;
        cin >> mod;
        if(mod == 0) {
            string name;
            int scor;
            multimap<int, string, greater<int>> ismap;
            while(num--) {
                cin >> name >> scor;
                ismap.insert(pair<int, string>(scor, name));
            }
            for(auto m : ismap) {
                cout << m.second << ' ' << m.first << endl;
            }
        }
        else {
            string name;
            int scor;
            multimap<int, string> ismap;
            while(num--) {
                cin >> name >> scor;
                ismap.insert(pair<int, string>(scor, name));
            }
            for(auto m : ismap) {
                cout << m.second << ' ' << m.first << endl;
            }
        }
    }

    return 0;
}
发表于 2020-02-23 14:39:07 回复(0)
虽然说是一种很笨的办法(因为框架集合不熟练),但是觉得应该会对有需要的人有帮助
思路还是将名字+成绩放在第一个数组,成绩放在第二个数组,按成绩大小来输出第一个数组

import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner key =new Scanner(System.in);
    while(key.hasNext()){
      int num = key.nextInt();
      int way = key.nextInt();
      String[] array = new String[num];
      int[] array1 =new int[num];
      for(int i=0;i<num;i++){
        String temp = key.next();
        int temp1 = key.nextInt();
        String temp2 = temp+" "+temp1;
        array[i]=temp2;
        array1[i]=temp1;
      }
      if(way==0){
        for(int j=0;j<num;j++){
        int max = array1[num-1];
        int we = num-1;
        for(int i=num-1;i>=0;i--){
          if(array1[i]>=max){
            max = array1[i];
            we=i;
          }
        }
          System.out.println(array[we]);
          array1[we]=-1;
      }
      }
      if(way==1){
        for(int j=0;j<num;j++){
          int min = array1[num-1];
          int we = num-1;
          for(int i=num-1;i>=0;i--){
            if(array1[i]<=min){
              min = array1[i];
              we = i;
            }
          }
          System.out.println(array[we]);
          array1[we]=100000;
        }
      }
    }
  }
}

发表于 2020-02-06 12:19:55 回复(0)

#include<iostream> #include<string> #include<map> #include<algorithm>
using namespace std;
int main() {     int m,f;     while(cin>>m)     {         cin>>f;         multimap<int,string> map;         multimap<int,string,greater<int>> min;         string str;         int num;         for(int i=0;i<m;i++)         {             cin>>str>>num;             map.insert(pair<int,string>(num,str));             min.insert(pair<int,string>(num,str));         }         if(f==0)         {             for(multimap<int,string,greater<int>>::iterator it=min.begin();it!=min.end();it++)             {                 cout<<it->second<<' '<<it->first<<endl;             }         }         else         {             for(multimap<int,string>::iterator it=map.begin();it!=map.end();it++)             {                 cout<<it->second<<' '<<it->first<<endl;             }         }     }     return 0; }

发表于 2019-07-11 22:44:38 回复(0)
//按理说这段代码是可以的啊,怎么就是通不过!望好心人看下,思路也很明确。
import java.util.*;
public class Test068 {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    while(sc.hasNext()){
    int n=Integer.parseInt(sc.nextLine());
    int flag=Integer.parseInt(sc.nextLine());
    Map<String,Integer>map=new LinkedHashMap<String,Integer>();
    int[] array=new int[n];
    for(int i=0;i<n;i++){
        String[] str=sc.nextLine().split(" ");
        String str1=str[0];
        int a= Integer.parseInt(str[1]);
        map.put(str1,a);
        array[i]=a;
        }
    Arrays.sort(array);   //对分数进行排序(升序)
    Set<String> set=map.keySet();
    //0表示降序,1表示升序
    if(flag==1){
        for(int i=0;i<n;i++){   //对数组中的元素进行一个个扫描
           for(String s:set){
               if(map.get(s)==array[i]){
                   System.out.println(s+" "+array[i]);
                   map.remove(s);
                   break;
               }             
           }
        }
    }else{
        for(int i=n-1;i>=0;i--){
            for(String s:set){
                if(map.get(s)==array[i]){
                    System.out.println(s+" "+array[i]);
                    map.remove(s);
                    break;
                   }
                 }
              }
           }    
        }
    }
}
//测试用例:
119 0 txrevyi 2 bshbreg 25 wx 71 xriyt 41 br 47 rbuqqvjic 100 ndpfojuz 34 eexjhre 21 rhictee 28 kanht 22 ejichusgdu 10 sp 65 ocuddtcdyd 83 qvh 75 uomeundng 5 fgswtdcm 88 inqkf 87 zfhnko 83 ojdpujwy 35 wzgyi 93 l 80 gdmfmjl 12 f 31 fdni 67 ytnlbefa 10 vdfpbizm 13 yror 91 e 14 cx 72 wxf 41 g 1 aln 80 zchmnjicb 28 mfk 64 fosazenls 87 dhzbotlm 32 pqvpag 82 myqqawf 42 nmwrcxloi 18 tz 67 hsyiykb 29 jlp 63 gnremcj 89 zsuzmnrvl 14 cos 5 dt 15 mqulq 31 bdox 19 hvhhblb 91 ogtdl 67 hy 45 wmwksobqs 44 dt 25 okatppi 4 txsqycc 89 djbmtfr 49 n 28 cca 43 kp 27 prnljksw 26 jb 6 zqrzs 8 bqoskic 7 mvgsdkg 2 dqvqxestjh 38 lnz 98 fedd 56 jauvkbai 98 ewpwdmegb 26 oeisemtup 16 lgn 46 ihznixw 3 oia 57 i 90 phqfg 60 oxkymaj 60 w 58 oawquiu 89 hfeprrtdar 24 wg 37 gwvprlhig 74 x 45 ntyo 90 rm 76 gbxphisqps 96 rrlbkwtrzc 88 gc 21 pefjinrzk 13 nuo 86 jnhsz 31 to 26 b 43 bueymur 18 jujwv 18 kf 0 l 61 dcryalrimv 20 oz 24 cpapxy 96 lndq 73 mjd 44 nrybszapvs 70 jip 77 olsttnf 64 ypb 75 zrksdy 17 jnng 87 y 0 ntckc 72 mraolqz 28 o 43 uutgjfh 66 fkedaaeagz 30 ajkmuprxvf 55 flxaqayh 33 hiqozhrcr 11 gcjg 93 jfuesm 55 xxwn 62 
对应输出应该为:
rbuqqvjic 100 lnz 98 jauvkbai 98 gbxphisqps 96 cpapxy 96 wzgyi 93 gcjg 93 yror 91 hvhhblb 91 i 90 ntyo 90 gnremcj 89 txsqycc 89 oawquiu 89 fgswtdcm 88 rrlbkwtrzc 88 inqkf 87 fosazenls 87 jnng 87 nuo 86 ocuddtcdyd 83 zfhnko 83 pqvpag 82 l 80 aln 80 jip 77 rm 76 qvh 75 ypb 75 gwvprlhig 74 lndq 73 cx 72 ntckc 72 wx 71 nrybszapvs 70 fdni 67 tz 67 ogtdl 67 uutgjfh 66 sp 65 mfk 64 olsttnf 64 jlp 63 xxwn 62 l 61 phqfg 60 oxkymaj 60 w 58 oia 57 fedd 56 ajkmuprxvf 55 jfuesm 55 djbmtfr 49 br 47 lgn 46 hy 45 x 45 wmwksobqs 44 mjd 44 cca 43 b 43 o 43 myqqawf 42 xriyt 41 wxf 41 dqvqxestjh 38 wg 37 ojdpujwy 35 ndpfojuz 34 flxaqayh 33 dhzbotlm 32 f 31 mqulq 31 jnhsz 31 fkedaaeagz 30 hsyiykb 29 rhictee 28 zchmnjicb 28 n 28 mraolqz 28 kp 27 prnljksw 26 ewpwdmegb 26 to 26 bshbreg 25 dt 25 hfeprrtdar 24 oz 24 kanht 22 eexjhre 21 gc 21 dcryalrimv 20 bdox 19 nmwrcxloi 18 bueymur 18 jujwv 18 zrksdy 17 oeisemtup 16 dt 15 e 14 zsuzmnrvl 14 vdfpbizm 13 pefjinrzk 13 gdmfmjl 12 hiqozhrcr 11 ejichusgdu 10 ytnlbefa 10 zqrzs 8 bqoskic 7 jb 6 uomeundng 5 cos 5 okatppi 4 ihznixw 3 txrevyi 2 mvgsdkg 2 g 1 kf 0 y 0 
你的输出为:(牛客网上)
rbuqqvjic 100 lnz 98 jauvkbai 98 gbxphisqps 96 cpapxy 96 wzgyi 93 gcjg 93 yror 91 hvhhblb 91 i 90 ntyo 90 gnremcj 89 txsqycc 89 oawquiu 89 fgswtdcm 88 rrlbkwtrzc 88 inqkf 87 fosazenls 87 jnng 87 nuo 86 ocuddtcdyd 83 zfhnko 83 pqvpag 82 aln 80
可是在Myeclipse中的结果明明是:
rbuqqvjic 100 lnz 98 jauvkbai 98 gbxphisqps 96 cpapxy 96 wzgyi 93 gcjg 93 yror 91 hvhhblb 91 i 90 ntyo 90 gnremcj 89 txsqycc 89 oawquiu 89 fgswtdcm 88 rrlbkwtrzc 88 inqkf 87 fosazenls 87 jnng 87 nuo 86 ocuddtcdyd 83 zfhnko 83 pqvpag 82 l 80 aln 80 jip 77 rm 76 qvh 75 ypb 75 gwvprlhig 74 lndq 73 cx 72 ntckc 72 wx 71 nrybszapvs 70 fdni 67 tz 67 ogtdl 67 uutgjfh 66 sp 65 mfk 64 olsttnf 64 jlp 63 xxwn 62 l 61 phqfg 60 oxkymaj 60 w 58 oia 57 fedd 56 ajkmuprxvf 55 jfuesm 55 djbmtfr 49 br 47 lgn 46 hy 45 x 45 wmwksobqs 44 mjd 44 cca 43 b 43 o 43 myqqawf 42 xriyt 41 wxf 41 dqvqxestjh 38 wg 37 ojdpujwy 35 ndpfojuz 34 flxaqayh 33 dhzbotlm 32 f 31 mqulq 31 jnhsz 31 fkedaaeagz 30 hsyiykb 29 rhictee 28 zchmnjicb 28 n 28 mraolqz 28 kp 27 prnljksw 26 ewpwdmegb 26 to 26 bshbreg 25 dt 25 hfeprrtdar 24 oz 24 kanht 22 eexjhre 21 gc 21 dcryalrimv 20 bdox 19 nmwrcxloi 18 bueymur 18 jujwv 18 zrksdy 17 oeisemtup 16 dt 15 e 14 zsuzmnrvl 14 vdfpbizm 13 pefjinrzk 13 gdmfmjl 12 hiqozhrcr 11 ejichusgdu 10 ytnlbefa 10 zqrzs 8 bqoskic 7 jb 6 uomeundng 5 cos 5 okatppi 4 ihznixw 3 txrevyi 2 mvgsdkg 2 g 1 kf 0 y 0 
发表于 2018-07-24 11:57:59 回复(2)