您的位置:首页 > 其它

算法训练 P1102

2016-03-30 11:29 316 查看
算法训练 P1102

时间限制:1.0s 内存限制:256.0MB

  定义一个学生结构体类型student,包括4个字段,姓名、性别、年龄和成绩。然后在主函数中定义一个结构体数组(长度不超过1000),并输入每个元素的值,程序使用冒泡排序法将学生按照成绩从小到大的顺序排序,然后输出排序的结果。
  输入格式:第一行是一个整数N(N<1000),表示元素个数;接下来N行每行描述一个元素,姓名、性别都是长度不超过20的字符串,年龄和成绩都是整型。
  输出格式:按成绩从小到大输出所有元素,若多个学生成绩相同则成绩相同的同学之间保留原来的输入顺序。
输入:
  3
  Alice female 18 98
  Bob male 19 90
  Miller male 17 92

输出:
  Bob male 19 90
  Miller male 17 92
  Alice female 18 98

class student {
String name;
String sex;
int age;
int grade;
public student(String name,String sex,int age,int grade){
this.name=name;
this.sex=sex;
this.age=age;
this.grade=grade;
}

}


import java.util.Scanner;
public class Main {
static student[]stu;

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
stu=new student[n+1];
String name,sex;
int age,grade;
for(int i=0;i<n;i++){
name=sc.next();
sex=sc.next();
age=sc.nextInt();
grade=sc.nextInt();
stu[i]=new student(name,sex,age,grade);
}
student temp;
for(int i=1;i<n;i++){
for(int j=0;j<n-i;j++){
if(stu[j].grade>stu[j+1].grade){
temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
System.out.println(stu[i].name+" "+stu[i].sex+" "+stu[i].age+" "+stu[i].grade);
}
}
sc.close();
}

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