您的位置:首页 > 其它

学生排序

2016-04-29 19:27 411 查看
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);
}
}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: