不使用数组,和其他排序解决下面问题:.某比赛有10个评委打分,编写程序,输入评委所给分数,然后求选手的平均分要求去掉一个最高分和一个最低分再求平均。

题目:不使用数组和排序来解决下面问题
.某比赛有10个评委打分,编写程序,输入评委所给分数,然后求选手的平均分要求去掉一个最高分和一个最低分再求平均。

文章目录

分析:

不采用数组:
可以采取三个变量即可解决问题:
首先定义一个记录10个评委打分的总和的变量sum:
再定义两个变量max,min来时刻记录最大,最小值,
再定义一个temp变量,每次都要记录评委的打分,之后再加到sum,之后再和max比较,如果temp大于max,则将max的值赋值为temp,如果temp小于min,则将min的值赋值为temp,
最后再将sum减去max,min即可;
需要注意的是第一次的赋值操作,将max,min值都初始化为第一次的temp即可;

代码实现:

package exer;

import java.util.Scanner;

/**
 * @author 胖胖的山头
 * @create 2020-10-26 20:42
 */
public class THREE {
    
    
    public static void main(String[] args) {
    
    
        int max = 0,min = 0,temp;
        Scanner input=new Scanner(System.in);
        double sum=0;
        for (int i = 0; i<10; i++) {
    
    
            System.out.print("请第"+(i+1)+"个评委打分:");
            temp=input.nextInt();
            sum+=temp;
            if(temp>=max||i==0) {
    
    
                max=temp;
            }
            if(temp<min||i==0) {
    
    
                min=temp;
            }
        }
        System.out.println("平均值为:"+(sum-min-max)/8);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_46931134/article/details/109312646
今日推荐