私は今夜のためにプログラミングプロジェクトに配列を使用しています。私は、配列のすべての番号を追加することができますが、そこから最大値と最小値を取り除くことができません。私の試行と実際のプロジェクトの説明は以下の通りです。配列から最大値と最小値を引き出す方法は?
ダイビングのスポーツでは、7人の審査員が0から10までのスコアを与えます。各スコアは浮動小数点値です。最も高いスコアと最も低いスコアが投げられ、残りのスコアは一緒に加算されます。その合計に、その潜水の難易度が乗算されます。難易度は1.2から3.8ポイントの範囲です。合計に0.6を掛けてダイバーの得点を決定します。
難易度を入力して7名の審査員のスコアを入力し、そのダイビングの総合スコアを出力するコンピュータプログラムを作成します。プログラムは、すべての入力が許容されるデータ範囲内にあることを確認する必要があります。
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;
コードが実行され、正しい出力を生成しますが、最大値と最小値との問題を減算していないよう:
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);
}
}
私は苦労していますことを、特に一部はここにあります要求...助けをありがとう!
は私に見えます最大値と最小値の両方を0に初期化しているようです(divingScoresは最初は空の配列です)。それぞれ小さな値と大きい値に設定してみてください。 – Xyene