题目:编写程序,提示用户输入学生个数、学生姓名和他们的分数,然后按照分数的降序打印学生
的姓名。假定姓名是不包含空格的字符串,并使用Scanner类的next()方法来读取姓名
import java.util.Scanner;
public class Exercise07_17 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入学生个数");
int number = input.nextInt();
String[] names = new String[number];
int[] grades = new int[number];
for (int i = 0; i < number; i++) {
System.out.println("输入学生姓名");
//必须用方法next(),因为next()是读取分割空白元素的单个元素,而nextLine()是读取整行
String name = input.next();
names[i] = name;
System.out.println("输入学生分数");
int grade = input.nextInt();
grades[i] = grade;
}
print(names, grades);
}
// 选择排序的变形
public static void print(String[] names, int[] grades) {
for (int i = 0; i < names.length - 1; i++) {
int gradeMax = grades[i];
String nameMax = names[i];
int indexMax = i;
for (int j = i + 1; j < names.length; j++) {
if (grades[j] > gradeMax) {
gradeMax = grades[j];
nameMax = names[j];
indexMax = j;
}
}
if (indexMax != i) {
grades[indexMax] = grades[i];
names[indexMax] = names[i];
grades[i] = gradeMax;
names[i]=nameMax;
}
}
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
该博客提供了一个Java程序示例,该程序使用Scanner类从用户那里获取学生人数、姓名和分数,然后按照分数的降序排列并打印学生姓名。程序通过选择排序算法实现对学生姓名的排序。
&spm=1001.2101.3001.5002&articleId=122324656&d=1&t=3&u=00e824122a3f42869b31c3592d73a378)
1941

被折叠的 条评论
为什么被折叠?



