题目:不使用数组和排序来解决下面问题
.某比赛有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);
}
}