java求10个同学成绩的最高分,并且确定是谁得了最高分

本文展示了一个使用Java编写的程序,该程序的功能是找出并打印10个同学成绩中的最高分及其对应的序号。程序首先通过Scanner类从用户输入读取10个成绩,然后通过比较找出最高分,并再次遍历数组以确定哪些同学获得了这个最高分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package net.xmh.lesson06;

import java.util.Scanner;

/**

  • 功能:求10个同学成绩的最高分,并且确定是谁得了最高分
  • 作者:xiangminghan
  • 日期:2019年4月11日
    */

public class topscore {
public static void main(String[] args) {
//声明部分
int[]score = new int[10];//成绩数组
int maxScore;//最高分
Scanner sc = new Scanner(System.in);//扫描器
//输出部分
for (int i = 0; i<score.length;i++){
System.out.print(“score[”+ i +"]=");
score[i] = sc.nextInt();
}
//处理部分
maxScore = score[0];
for (int i = 1;i<score.length;i++){
if(maxScore < score[i]){
maxScore = score[i];
}
}
//输出部分
System.out.println("\nmax_score ="+maxScore);
for(int i= 0;i<score.length;i++){
if (score[i]==maxScore){
System.out.println(“score[”+i+"]="+maxScore);
}
}
}
}

Java中,你可以创建一个`Student`类表示学生及其成绩,然后从一组成绩中去除最高分和最低分,最后计算剩余成绩的平均值。这里有一个简单的例子: ```java import java.util.ArrayList; import java.util.Collections; class Student { int score; public Student(int score) { this.score = score; } } public class ScoreStatistics { public static double averageWithoutMinMax(ArrayList<Student> scores) { if (scores == null || scores.isEmpty()) { throw new IllegalArgumentException("学生列表不能为空"); } Collections.sort(scores, (a, b) -> a.score - b.score); // 按分数排序 // 去掉最高分和最低分 if (scores.size() > 2) { scores.remove(scores.get(0)); // 最低分 scores.remove(scores.get(scores.size() - 1)); // 最高分 } int sum = 0; for (Student s : scores) { sum += s.score; } return (double) sum / (scores.size() != 0 ? scores.size() : 1); // 返回平均值,防止除以零错误 } public static void main(String[] args) { ArrayList<Student> classmates = new ArrayList<>(); classmates.add(new Student(85)); classmates.add(new Student(70)); // 添加更多学生成绩... try { double average = averageWithoutMinMax(classmates); System.out.println("除去最高分和最低分后的平均成绩: " + average); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } } } ``` 在这个例子中,我们首先对成绩列表进行排序,然后移除最低和最高的分数,接着计算剩余分数之和并除以剩余的个数得到平均值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值