需求:逐个输入10个学生成绩,并将从大到小输出。
分析:可使用冒泡排序将成绩数组进行交换排序
冒泡排序示例代码:
void bubbleSort(int[] a){
int temp;
for(int i = 1;i < a.length;i++) {
for(int j = 0;j < a.length - i; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
System.out.print(String.format("第 %d 步排序结果:",i));
for(int k = 0; k < a.length; k++){
System.out.print(a[k] + " ");
}
System.out.println();
}
}
实现从大到小打印成绩数组:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class StuduentScore2 {
// 逐个输入10个学生的成绩,并将其从大到小输出
// 10个学生保存到常量final int N = 10;
// 输入:保存到double[] scores中
// 从大到小用冒泡排序double[] sort(double[] nums){}方法
private static final int N = 10;
private static double[] scores = new double[N];
public static double[] sort(double[] nums){
for(int k = 1; k < N; k ++) {
for(int index = 0;index < N -k; index++){
if(nums[index] < nums[index + 1]){
double tmp = nums[index];
nums[index] = nums[index + 1];
nums[index + 1] = tmp;
}
}
System.out.print(String.format("第 %d 步排序结果是:",k));
for(int i = 0; i < N; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
}
return nums;
}
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
int count = 0;
while (count < N){
while (true){
System.out.println(String.format("请输入第%d个学生的成绩",count+1));
String str = buf.readLine();
scores[count] = Double.parseDouble(str);
if(scores[count] < 0 || scores[count] >100) {
System.out.println("请重新输入!");
}else{
count ++;
break;
}
}
}
double[] scoresNew = sort(scores);
System.out.print(String.format("这 %d位同学的成绩排序为:",N));
for(int i = 0; i < N; i++){
System.out.print(scoresNew[i] + " ");
}
}
}
代码实现结果如下:
请输入第1个学生的成绩
86
请输入第2个学生的成绩
72
请输入第3个学生的成绩
68
请输入第4个学生的成绩
74
请输入第5个学生的成绩
58
请输入第6个学生的成绩
92
请输入第7个学生的成绩
81
请输入第8个学生的成绩
63
请输入第9个学生的成绩
52
请输入第10个学生的成绩
80
第 1 步排序结果是:86.0 72.0 74.0 68.0 92.0 81.0 63.0 58.0 80.0 52.0
第 2 步排序结果是:86.0 74.0 72.0 92.0 81.0 68.0 63.0 80.0 58.0 52.0
第 3 步排序结果是:86.0 74.0 92.0 81.0 72.0 68.0 80.0 63.0 58.0 52.0
第 4 步排序结果是:86.0 92.0 81.0 74.0 72.0 80.0 68.0 63.0 58.0 52.0
第 5 步排序结果是:92.0 86.0 81.0 74.0 80.0 72.0 68.0 63.0 58.0 52.0
第 6 步排序结果是:92.0 86.0 81.0 80.0 74.0 72.0 68.0 63.0 58.0 52.0
第 7 步排序结果是:92.0 86.0 81.0 80.0 74.0 72.0 68.0 63.0 58.0 52.0
第 8 步排序结果是:92.0 86.0 81.0 80.0 74.0 72.0 68.0 63.0 58.0 52.0
第 9 步排序结果是:92.0 86.0 81.0 80.0 74.0 72.0 68.0 63.0 58.0 52.0
这 10位同学的成绩排序为:92.0 86.0 81.0 80.0 74.0 72.0 68.0 63.0 58.0 52.0
来源:CSDN
作者:APRII2
链接:https://blog.csdn.net/weixin_44322399/article/details/104541520