R7-23 作品评分(JAVA)

简介: R7-23 作品评分(JAVA)

全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。


输入格式:

输入数据包括两行: 第一行为n,表示n个评委,n>2。 第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。


输出格式:

输出平均分,结果保留两位小数。


输入样例:

1. 6
2. 10 9 8 7.9 9 9.5


输出样例:

8.88


方法一:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        double sum = 0;
        double maxx = 0;
        double minn = 101001;
        in.nextLine();
         //  输入回车符
        String line = in.nextLine();
         //  一次性读入一串,加快运行效率
        String f[] = line.split(" ");
        for (int i = 0;i < n; i ++ ) {
            double x = Double.parseDouble(f[i]);
            if(maxx < x) maxx = x;
            if(minn > x) minn = x;
            sum += x;
        }
        System.out.printf("%.2f",(sum - maxx - minn) / (n - 2));
    }
}


方法二:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        in.nextLine();//接受空白符
        double sum = 0;
        List<Double> nums = new ArrayList<>();//顺序表
        String[] line = in.nextLine().split(" ");//以“ ”分隔分别放在这个String类型的数组中
        for (String str : line) {//遍历
            nums.add(Double.valueOf(str));//存入顺序表
        }
        Collections.sort(nums);//排序
        nums.remove(0);//删除
        nums.remove(nums.size() - 1);
        for (double num : nums) {
            sum += num;
        }
        System.out.println(String.format("%.2f", sum / (n - 2)));
    }
}
目录
相关文章
|
9月前
|
JavaScript 小程序 Java
基于Java的高校学生综合测评管理系统的设计与实现(亮点:选课、课程评分、各类活动申请、学生考勤记录)
基于Java的高校学生综合测评管理系统的设计与实现(亮点:选课、课程评分、各类活动申请、学生考勤记录)
133 0
|
存储 搜索推荐 安全
学生日常行为评分管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(一)
学生日常行为评分管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
290 1
学生日常行为评分管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(二)
学生日常行为评分管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
140 1
|
2天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
33 14
|
5天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
34 13
|
6天前
|
安全 Java 开发者
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。
|
1月前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
109 17
|
2月前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者

热门文章

最新文章