全部是我自己完成的!!!
代码
package com.zhang;
import java.util.Scanner;
/*
* 评委打分案例
* 范围0-100。去掉最高最低,再计算平均数即为选手成绩
*应该是数组
* */
public class Test3 {
public static void main(String[] args) {
grade();
}
public static void grade(){
//几位评委
System.out.println("请问有几位评委:");
Scanner sc = new Scanner(System.in);
int man = sc.nextInt();
double grade ;
double[] score = new double[man];
System.out.println("请分别输入评委打分:");
for (int i = 0;i < man ;i++){
System.out.println("请输入第"+ (i+1) +"位评委的分数");
score[i] = sc.nextInt();
//看评委分数是否在0-100
if(score[i] > 100 || score[i] < 0){
System.out.println("第"+(i+1)+"位评委分数有误,分数在0-100之间,请重新输入:");
score[i] = sc.nextInt();
}
}
/* //检查数组是否正确
for (int i = 0; i < score.length; i++) {
System.out.println(score[i]);
}*/
//找出最小值和最大值
double max = score[0];
for(int i = 0;i < score.length;i++){
if(max<score[i]){
max = score[i];
}
}
double min = score[0];
for(int i = 0;i < score.length;i++){
if(min > score[i]){
min = score[i];
}
}
//求和,再减去max和min,取得平均数
double sum = 0;
for(int i = 0;i < score.length;i++){
sum += score[i];
}
//System.out.println("sum="+sum);
sum -= max;
sum -= min;
grade = sum / (man-2);
//System.out.println(max);
//System.out.println(min);
System.out.println("去掉最高分最低分,该选手最后的成绩是"+grade);
//return grade;
}
}
改进增强for循环:
//可以改用增强for循环
/*for (元素类型 变量名 : 数组或集合) {
循环体
}*/
for(double i : score){
if(max<i){
max = i;
}
}