トピック:次の問題を解決するために配列と並べ替えを使用しないでください
。コンテストでは、10人の審査員がスコアを付け、プログラムを作成し、審査員から与えられたスコアを入力して、プレーヤーの平均スコアを見つけます。最高スコアと最低スコアを削除してから平均する必要があります。
分析:
配列を使用しないでください:
問題を解決するために3つの変数を使用できます:
最初に10人の裁判官の合計スコアを記録する変数の合計を定義します:
常に最大値と最小値を記録するために2つの変数maxとminを
定義し、次に一時変数を定義します、審査員のスコアが記録されるたびに、合計に加算され、最大値と比較されます。tempがmaxより大きい場合は、maxの値がtempに割り当てられ、tempがminより小さい場合は、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);
}
}