Hallo,
Ich habe ein Pferderennen Programm erstellt, bei dem man aussuchen kann wie viele Pferde laufen sollen und wie viele Runden gelaufen wird. Danach wird dann die Gesamtzeit der einzelnen Pferde genannt und zum Schluss sollte dann die Platzierung rauskommen. Die Platzierung wollte ich mit dem Bubblesort Algorithmus, doch das funktioniert gerade nicht wirklich. Dadurch kommen nämlich richtig viele Fehlermeldungen, und je nachdem wie viele Pferde und Rennen man eingibt kommen andere Fehler überall raus. Meist ist es aber ein "java.lang.ArrayIndexOutOfBoundsException" Fehler.
Das Programm:
Ich hoffe einer hier kann mir helfen, da ich daran schon ein paar Stunden sitze und noch immer keine Ahnung habe wie ich das genau machen soll.. :/
Ich habe ein Pferderennen Programm erstellt, bei dem man aussuchen kann wie viele Pferde laufen sollen und wie viele Runden gelaufen wird. Danach wird dann die Gesamtzeit der einzelnen Pferde genannt und zum Schluss sollte dann die Platzierung rauskommen. Die Platzierung wollte ich mit dem Bubblesort Algorithmus, doch das funktioniert gerade nicht wirklich. Dadurch kommen nämlich richtig viele Fehlermeldungen, und je nachdem wie viele Pferde und Rennen man eingibt kommen andere Fehler überall raus. Meist ist es aber ein "java.lang.ArrayIndexOutOfBoundsException" Fehler.
Das Programm:
Java:
package pferderennen;
import java.util.Scanner;
public class Pferderennen {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int tempnr;
double tempzeit;
System.out.println("Wie viele Runden soll gelaufen werden?");
int runde = sc.nextInt();
System.out.println("Wie viele Pferde sollen laufen?");
int pferde = sc.nextInt();
double[] pferdezeiten = new double[pferde];
int[] pferdenummern = new int[pferde];
for (int i = 0; i < runde; i++) {
System.out.println(" ");
System.out.println("------Runde" + (i + 1) + "------");
for (int j = 0; j < pferde; j++) {
double rundenzeit = (double) (Math.random() * 60 + 120);
pferdezeiten[j] += rundenzeit;
pferdenummern[j] = j + 1;
System.out.println(i + 1 + "-te Runde: " + "Pferd Startnummer: " + pferdenummern[j] + " Rundenzeit: " + Math.round(rundenzeit * 100) / 100.0 + "s");
}
}
System.out.println("");
System.out.println("------Endergebnisse------");
for (int x = 0; x < pferde; x++) {
System.out.println("Pferd mit Startnummer: " + pferdenummern[x] + " ist im Ziel mit der Gesamtzeit: " + Math.round(pferdezeiten[x] * 100) / 100.0 + "s");
}
for (int n = 0; n < pferdezeiten.length; n++) {
for (int m = 0; m < pferdezeiten.length +1 - n; m++) {
if (pferdezeiten[m] > pferdezeiten[m + 1]) {
tempzeit = pferdezeiten[m];
pferdezeiten[m]=pferdezeiten[m+1];
pferdezeiten[m+1]=tempzeit;
tempnr = pferdenummern[m];
pferdenummern[m]=pferdenummern[m+1];
pferdenummern[m+1]=tempnr;
}else{
}
}
}
System.out.println("");
System.out.println("------Platzierungen------");
for(int z=pferde; z>0; z--){
System.out.println("Platz: "+z+", Pferd "+pferdenummern[z]+" mit der Zeit: "+pferdezeiten[z]);
}
}
}
Ich hoffe einer hier kann mir helfen, da ich daran schon ein paar Stunden sitze und noch immer keine Ahnung habe wie ich das genau machen soll.. :/