Script
有n个学生,要求按照女生在前,男生在后,矮个在前,高个在后的顺序重新进行排队。如果身高相同按原始的先后顺序排列。
Input
第1行为学生数量n,从第2行开始每一行为一个学生的信息:每行包括学生姓名、性别、身高等信息。
Output
重新排序后的学生信息。
Sample Input
a female 180
b male 160
c female 150
d male 170
e male 170
Sample Output
c,female,150
a,female,180
b,male,160
d,male,170
e,male,170
其实我写的程序非常水;import java.util.*;
class Student{
int h;
String n,s;
}
class MyComprator implements Comparator{
public int compare(Object arg0, Object arg1) {
Student t1=(Student)arg0;
Student t2=(Student)arg1;
if(t1.h != t2.h)
return t1.h>t2.h? 1:-1;
else
return t1.h>t2.h? 1:-1;
}
}
public class aa{
static int r;
static String name,sex;
static float height;
Student [] arr;
aa(){
arr = new Student[100];
for(int i=0;i<100;i++)
arr[i]=new Student();
}
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
aa a1=new aa();
while(cin.hasNext()){
r=cin.nextInt();
for(int j=0;j<r;j++)
{
a1.arr[j].n=cin.next();
a1.arr[j].s=cin.next();
a1.arr[j].h=cin.nextInt();
}
Arrays.sort(a1.arr,new MyComprator());
for(int j=1;j<=2;j++){
for(int i=100-r;i<100;i++){
// String aaa=a1.arr[100-r].s;
//System.out.println(aaa+" "+a1.arr[i].s);
if(j==1&&a1.arr[i].s.equalsIgnoreCase("female"))
System.out.println(a1.arr[i].n+" "+a1.arr[i].s+ " "+a1.arr[i].h);
if(j==2&&a1.arr[i].s.equalsIgnoreCase("male"))
System.out.println(a1.arr[i].n+" "+a1.arr[i].s+ " "+a1.arr[i].h);
}
}
}
}
}