7-2 综艺节目打分计算问题-hebust (10分) java

综艺节目打分计算问题

综艺节目现场专家打分时,要求去掉一个最高分,再去掉一个最低分,然后计算剩余打分的平均值

输入格式:
固定为1行,为每个评委给出的分数,范围【0-100】正整数,元素之间使用空格分开,元素个数【3-100】

输出格式:
按要求计算出的平均值的正整数【如果有小数部分,直接舍弃】

输入样例:
在这里给出一组输入。例如:

50 80 70 90 60

输出样例:
在这里给出相应的输出。例如:

70

关于这道题循环自然可以,不过我喜欢用泛型。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;


public class Main{
    public static void main(String []args) {
        ArrayList<Integer> grades=new ArrayList<Integer>();
        Scanner input=new Scanner(System.in);
        String grade=input.nextLine();
        String gra[]=grade.split(" ");
        for(int i=0;i<gra.length;i++){
            grades.add( Integer.valueOf(gra[i]).intValue());
        }

        Collections.sort(grades);
        int sum=0;
        grades.remove(0);
      grades.remove(gra.length-2);//A
        for(Integer i:grades) {
            sum+=i;
        }
        System.out.println(sum/grades.size());
    }}

这里有几个需要注意的点:

  1. 由于输入是以字符串输入,并且相邻数字之间以空格隔开,所以我们可以用split()方法将他们切割存储在数组中,但是此时他们仍然是以字符串的 形式存储,所以这里我们就要用到

Integer.valueOf(gra[i]).intValue();
即将字符串数组中的元素转换为整型。

  1. 由于需要去掉最高分和最低分,所以用到Collections.sort();方法,将元素按照升序排列,然后再用remove()方法去掉泛型中第一个和最后一个元素即可。
  2. A处代码也可以改成 grades.remove(grades.size());即可删除最后一个元素。关于gra.length-2因为数组下标从0开始计数!容器也是!!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值