我今晚在編程項目中使用數組。我可以將數組的所有數字相加,但是從那裏我無法從中刪除最大值和最小值。我的嘗試和實際項目描述如下...如何從數組中提取最大值和最小值?
在潛水運動中,七名評委評分介於0到10之間,其中每個評分可能是一個浮點值。最高分和最低分被拋出,剩下的分數被加在一起。然後將總和乘以該潛水的難度。難度的範圍從1.2到3.8分。然後將總數乘以0.6來確定潛水員的分數。
編寫一個計算機程序,輸入難度和七個評委的分數並輸出該潛水的總分。程序應確保所有輸入都在允許的數據範圍內。
package baker;
import java.util.Scanner;
public class DiveScoreDriver {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
double total = 0;
double totalFinal = 0;
double divingScores[] = new double[7];
double input;
double difficultyInput = 0;
double minimum = divingScores[0];
double maximum = divingScores[0];
for (int i = 1; i < divingScores.length + 1; i++)
{
System.out.println("Judge " + i + " please enter your score.");
input = keyboard.nextDouble();
System.out.println();
if(input < 0 || input > 10)
{
System.out.println("Invalid Score");
return;
}
else
{
total += input;
}
}
while (difficultyInput < 1.2 || difficultyInput > 3.8)
{
System.out.println("Difficulty Rating: ");
difficultyInput = keyboard.nextDouble();
}
for(int i = 0; i < divingScores.length; i++)
{
if(divingScores[i] < minimum)
minimum = divingScores[i];
if(divingScores[i] > maximum)
maximum = divingScores[i];
}
total = total - maximum - minimum;
total = total * difficultyInput;
total = total * 0.6;
System.out.printf("\nThe overall score for the dive: %.1f\n", total);
}
}
特別是我與掙扎的部分是在這裏:
for(int i = 0; i < divingScores.length; i++)
{
if(divingScores[i] < minimum)
minimum = divingScores[i];
if(divingScores[i] > maximum)
maximum = divingScores[i];
}
total = total - maximum - minimum;
total = total * difficultyInput;
total = total * 0.6;
代碼運行併產生一個正確的輸出,但它似乎並沒有減去最大值和最小值和問題請求...感謝您的幫助!
看起來對我來說就像你將最大值和最小值初始化爲0一樣(divingScores起初是一個空數組)。您應該嘗試將它們分別設置爲一些較小的值和一些較大的值。 – Xyene