简单数组练习-4
奥运会某比赛项目,10个评委打分,去掉一个最高分,去掉一个最低分,然后计算该选手的平均分。
代码实现:
public static void main(String[] args) {
int []a = new int[10];
Scanner input = new Scanner(System.in);
System.out.println("请输入10位裁判的成绩:");
for (int i = 0; i < a.length; i++) {
a[i] = input.nextInt();
}
int max=getMax(a);
int min=getMin(a);
int sum=getSum(a);
double average=(sum-max-min)*1.0/(a.length-2);
System.out.println("裁判的最高分为:"+max);
System.out.println("裁判的最低分为"+min);
System.out.println("该选手的平均分为:"+average);
}
public static int getMax(int[] a) {
int max=a[0];
for (int i = 0; i < 10; i++) {
if (max<a[i]){
max=a[i];
}
}
return max;
}
public static int getMin(int [] a) {
int min=a[0];
for (int i = 0; i < 10; i++) {
if (min>a[i]){
min=a[i];
}
}
return min;
}
public static int getSum(int[] a) {
int sum=0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
return sum;
}
运行结果:
总结:
需要给double average=(sum-max-min)*1.0/(a.length-2);
这一行代码乘以1.0,将总分去掉最高分和最低分后的值转化为double型,对于计算出来不是整形的值才可以得到正确的平均分。