日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取

發布時間:2024/7/23 java 36 豆豆

**7.17(對學生排序)編寫一個程序,提示用戶輸入學生個數、學生姓名和他們的成績,然后按照學生成績的降序打印學生的姓名。假定姓名是不包含空格的字符,使用next方法讀取

  • 題目
    • 題目描述
    • 破題
  • 代碼
    • 運行實例

題目

題目描述

**7.17(對學生排序)編寫一個程序,提示用戶輸入學生個數、學生姓名和他們的成績,然后按照學生成績的降序打印學生的姓名。假定姓名是不包含空格的字符,使用next()讀取

破題

  • 主方法:獲取學生個數,作為姓名和成績兩個數組的長度
  • 主方法:使用for循環獲取學生姓名和成績,學生姓名與成績交替獲取,并賦值給兩個數組的對應位置
  • 主方法:調用自定義方法sort(),傳入兩個數組并進行排序,返回值是排序后成績對應的姓名數組
  • sort方法:在對成績數組進行排序(交換位置)的同時,對姓名也做同樣交換位置的操作
  • 主方法:輸出返回的數組
  • 代碼

    import java.util.Arrays; import java.util.Scanner;public class Test7_17 {public static void main(String[] args) {//1. 主方法:獲取學生個數,作為姓名和成績兩個數組的長度Scanner input = new Scanner(System.in);System.out.print("輸入學生個數:");int length = input.nextInt();//1+. 聲明兩個數組String[] names = new String[length];int[] scores = new int[length];//2. 主方法:使用for循環獲取學生姓名和成績,學生姓名與成績交替獲取,并賦值給兩個數組的對應位置System.out.print("輸入姓名成績:");for (int i = 0 ; i < length ; i++){names[i] = input.next();scores[i] = input.nextInt();}//3. 主方法:調用自定義方法sort(),傳入兩個數組并進行排序,返回值是排序后成績對應的姓名數組String[] names_feedback = new String[length];names_feedback = sort(names, scores);//5. 主方法:輸出返回的數組System.out.print(Arrays.toString(names_feedback));}//4. sort方法:在對成績數組進行排序(交換位置)的同時,對姓名也做同樣交換位置的操作public static String[] sort(String[] names, int[] scores){//1. 聲明一個String數組(names_feedback)用于返回姓名String[] names_feedback = new String[names.length];//2. 使用for循環控制遍歷int index = -1; // 保存最大值下標for (int i = 0 ; i < names.length ; i++) {//調用自定義方法list_max(),傳入scores數組并接收除負數外最大值的下標index = list_max(scores);//上面接收到的最大值下標index,此時for循環為第i+1次//names_feedback[i]=names[index]; 同時將scores[index]=-1names_feedback[i]=names[index];scores[index]=-1;}//3. 返回names_feedback數組return names_feedback;}//4+ 自定義方法list_max(),傳入scores數組并接收除負數外最大值的下標public static int list_max(int[] scores){// 保存最大值的變量temp_max和最大值的下標temp_indexint temp_max = 0, temp_index = -1;// 獲取scores長度為lengthint length = scores.length;// 使用for循環獲取最大值(負數不計)for (int i = 0 ; i < length ; i++){if (temp_max < scores[i] && scores[i] >= 0){temp_max = scores[i];temp_index = i;}}// 返回保存的最大值下標temp_indexreturn temp_index;} }

    運行實例

    輸入學生個數:3 輸入姓名成績:zhang 96 wang 95 li 94 [zhang, wang, li]

    總結

    以上是生活随笔為你收集整理的Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。