You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java编程疑问:如何关联分数与姓名数组,获取最值对应学生

解决分数与对应学生姓名关联的问题

你的核心问题是只记录了最高分和最低分的数值,没记录它们在数组中的索引位置——而姓名数组names和分数数组marks的索引是一一对应的,只要拿到最值分数的索引,就能直接通过names[索引]获取对应学生姓名。

修改步骤:

  1. 替换maxMark和minMark为maxIndex和minIndex,初始值设为0(第一个学生的索引)
  2. 遍历分数数组时,比较当前分数与marks[maxIndex](当前最高分的分数),如果更大就更新maxIndex为当前索引;最低分同理
  3. 输出时通过names[maxIndex]和names[minIndex]获取对应姓名,同时可带上分数让结果更清晰

修改后的完整代码:

import java.util.Scanner;

public class Marks {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.print("How many students are there? ");
        int n = sc.nextInt();

        String[] names = new String[n];
        int[] marks = new int[n];
        
        for (int i = 0; i < n; i++) {
            System.out.print("Enter name of student " + (i + 1) +": " );
            names[i] = sc.next();
        
            System.out.print("Enter mark " + (i + 1) +": ");
            marks[i] = sc.nextInt();
        }
        
        float sum = 0;
        for (int i = 0;i < n;i++) {
            sum += marks[i];
        }
        float average = (sum / marks.length);
        System.out.println("The average mark is: " + average);
        
        // 追踪最高分的索引,而非分数值
        int maxIndex = 0;
        for (int i = 0;i < n; i++){
            if (marks[i] > marks[maxIndex]){
                maxIndex = i;
            }
        }

        // 追踪最低分的索引,而非分数值
        int minIndex = 0;
        for (int i = 0;i < n; i++){
            if (marks[i] < marks[minIndex]){
                minIndex = i;
            }
        }
    
        System.out.println("The best student is " + names[maxIndex] + " with mark " + marks[maxIndex]);
        System.out.println("The worst student is " + names[minIndex] + " with mark " + marks[minIndex]);
    }
}

额外说明:

如果存在多个学生分数同为最高分/最低分的情况,当前代码只会输出第一个出现的学生。如果需要输出所有最值学生,可以遍历数组收集所有对应索引后再统一输出。

内容的提问来源于stack exchange,提问作者Hamish McEwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 02:37:02