Ich benutze heute Abend Arrays für ein Programmierprojekt. Ich kann alle Zahlen des Arrays addieren, aber von dort kann ich die maximalen und minimalen Werte nicht entfernen. Mein Versuch und die eigentliche Projektbeschreibung sind unter ...Wie kann man die maximalen und minimalen Werte von einem Array ziehen?
Im Sport des Tauchens vergeben sieben Richter eine Kerbe zwischen 0 und 10, wo jede Kerbe ein Gleitkommawert sein kann. Die höchsten und niedrigsten Punktzahlen werden verworfen und die restlichen Punktzahlen werden addiert. Die Summe wird dann mit dem Schwierigkeitsgrad für diesen Tauchgang multipliziert. Der Schwierigkeitsgrad liegt zwischen 1,2 und 3,8 Punkten. Die Summe wird dann mit 0,6 multipliziert, um die Punktzahl des Tauchers zu bestimmen.
Schreiben Sie ein Computerprogramm, das einen Schwierigkeitsgrad und sieben Punktzahlen der Punktrichter eingibt und die Gesamtpunktzahl für diesen Tauchgang ausgibt. Das Programm sollte sicherstellen, dass alle Eingaben innerhalb der zulässigen Datenbereiche liegen.
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);
}
}
Der Anteil insbesondere, dass mit denen ich zu kämpfen ist hier:
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;
der Code ausgeführt wird und erzeugt eine korrekte Ausgabe, aber es scheint nicht die maximalen und minimalen Werte und das Problem zu subtrahieren Anfragen ... Danke für die Hilfe!
Sieht mir So wie du sowohl das Maximum als auch das Minimum auf 0 initialisierst (divingScores ist zunächst ein leeres Array). Sie sollten versuchen, sie auf einen kleinen Wert bzw. einen großen Wert zu setzen. – Xyene