一道简单的JAVA题,请教。初学者! 键盘输入10名学生的成绩和姓名,求出最后三名学生的姓名和成绩,用JAVA怎么编。。???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String[] args) throws Exception{ int elements = 10; String[] names = new String[elements]; int[] scores = new int[elements]; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String str = null; int i = 1 ; while( i <= elements){ System.out.println("请输入第"+i+"个学生姓名:"); str = reader.readLine(); names[i-1] = str; System.out.println("请输入第"+i+"个学生成绩:"); str = reader.readLine(); scores[i-1] = Integer.valueOf(str); i ++; } System.out.println("最后3名学生姓名和成绩:\n"); for(int j = elements - 3; j < elements ; j ++){ System.out.println("学生:"+ names[j]+" 成绩 "+ scores[j] + " \n"); } } 用for循环10次输入十个姓名和成绩 在循环里判断是否为最后三名 得到这三个的姓名和成绩 主函数的while大循环完成依次输入十个名子和分数分别存在names和scores数组里,后面的for循环就是输出后三个人的分数。 /** * 学生类(姓名,成绩) */class Student{ private String name=""; private float score=0F; Student(String na,float sc){ this.name=na; this.score=sc; } public String getName(){ return this.name; } public float getScore(){ return this.score; }}/** * 学生工具类 */public class StudentUtil{ /** * 显示最后几名学生的姓名和成绩 * * @para Student[] 学生表 * @para int 成绩最差的学生人数 */ public static void showLastScores(Student[] students,int lastNum) { if(students.length<lastNum) System.out.println("学生成绩表不够要查询的人数,students.length<lastNum"); for(int ln=1;ln<=lastNum;ln++){ for(int s=0;s<students.length-ln;s++){ if(students[s].getScore()<students[s+1].getScore()){ Student temp=students[s]; students[s]=students[s+1]; students[s+1]=temp; } } System.out.println(students[students.length-ln].getName()+": "+students[students.length-ln].getScore()); } } //测试 public static void main(String[] args){ Student[] students=new Student[5]; students[0]=new Student("张三",70.5F); students[1]=new Student("李四",80.5F); students[2]=new Student("王二",60.5F); students[3]=new Student("麻子",65F); students[4]=new Student("大宝",40F); StudentUtil.showLastScores(students,3); }} 两个字符串之间的元素比较 问个继续线程的问题,有点迷惑。 关于java...苦ing... 关于rowset.jar的问题 如何设置java虚拟机的内存??? 小弟有一事不明,请大侠拆解(关于String.split()) 有意思的问题!!!! 请问如何清空列 表 框 中的内容 希求java运算包,谢谢。 谁能用通俗点的话解释一下‘内部类“这个东西。。。? 问个jfreeChart的问题,如何根据面板坐标获取X、Y轴的值? 那位大哥手头有 lws格式的3d文件 发我分
public static void main(String[] args) throws Exception{
int elements = 10;
String[] names = new String[elements];
int[] scores = new int[elements];
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = null;
int i = 1 ;
while( i <= elements){
System.out.println("请输入第"+i+"个学生姓名:");
str = reader.readLine();
names[i-1] = str;
System.out.println("请输入第"+i+"个学生成绩:");
str = reader.readLine();
scores[i-1] = Integer.valueOf(str);
i ++;
}
System.out.println("最后3名学生姓名和成绩:\n");
for(int j = elements - 3; j < elements ; j ++){
System.out.println("学生:"+ names[j]+" 成绩 "+ scores[j] + " \n");
}
}
* 学生类(姓名,成绩)
*/
class Student{ private String name="";
private float score=0F;
Student(String na,float sc){
this.name=na;
this.score=sc;
}
public String getName(){
return this.name;
}
public float getScore(){
return this.score;
}
}
/**
* 学生工具类
*/
public class StudentUtil{
/**
* 显示最后几名学生的姓名和成绩
*
* @para Student[] 学生表
* @para int 成绩最差的学生人数
*/
public static void showLastScores(Student[] students,int lastNum) {
if(students.length<lastNum)
System.out.println("学生成绩表不够要查询的人数,students.length<lastNum");
for(int ln=1;ln<=lastNum;ln++){
for(int s=0;s<students.length-ln;s++){
if(students[s].getScore()<students[s+1].getScore()){
Student temp=students[s];
students[s]=students[s+1];
students[s+1]=temp;
}
}
System.out.println(students[students.length-ln].getName()+": "+students[students.length-ln].getScore());
}
}
//测试
public static void main(String[] args){
Student[] students=new Student[5];
students[0]=new Student("张三",70.5F);
students[1]=new Student("李四",80.5F);
students[2]=new Student("王二",60.5F);
students[3]=new Student("麻子",65F);
students[4]=new Student("大宝",40F);
StudentUtil.showLastScores(students,3);
}
}