Ich habe eine Frage zu einer kleinen Aufgabe die wie folgt aussieht:
Gegeben zwei int pointsCount und connectionCounts, wobie pointsCount eine Anzahl Punkte darstellt und connectionCounts die Verknüpfungen. Sind z.B die Werte pointsCount = 4 und connectionCounts = 2 gibt es 4 Punkte sowie 2 welche diese verbinden. Ich kriege diese beiden Nummern durch einen Scanner und wenn jetzt pointsCount = 2 ist sind die nächsten 2 linien zwei weitere int welche mir sagen welche Punkte verbunden sind.
Bsp:
4 2
1 2
2 3
Meine Aufgabe besteht nun darin Wege zu suchen, welche von einem Punkt a über Punkt b zu Punkt c gelangt, sprich von jetzt 1 über 2 nach 3 und dann den Wert von 2 (den mittleren Punkt) in einem Array zu speichern. Gibt es nun mehrere sollen die Punkte in der grösse zunehmend gespeichert werden.
Meine Frage ist nun: Wie kann ich dies am besten lösen?
Ich habe mir gedacht ich erstelle mir einen Array mit Anzahl int connectionCounts einträgen. Wie lese ich jedoch nur den zweiten int aus vom scanner? Ich kann ja nicht einfach
int n = In.readInt();
int[] connectionCounts = new int[n+1]
forgehen.
Ich hoffe mir kann jemand bei diesem Problem kurz weiterhelfen!
"x" und "y" sind übrigens sehr schlecht gewählte Variablennamen, weil sie rein gar nichts über die Funktion der Variablen aussagen. Besser wäre "pointsCount" und "connectionsCount" oder etwas anderes in dieser Art.
Und bei int[] Points = new int[n+1] sollte die Variable klein geschrieben werden ("points"). In den gängigen Javakonventionen werden Klassen großgeschrieben.
Versuch dir solche Dinge gleich richtig anzugewöhnen.
Ändere bitte nicht den Ausgangsbeitrag! Oder kennzeichne die Änderungen wenigstens (z.B. den ursprünglichen Text durchstreichen). Sonst verlieren die nachfolgenden Antworten komplett ihren Bezug. Rechtschreibfehler o.ä. können natürlich korrigiert werden.
public static void testCase() {
// Input using In.java class
int n = In.readInt(); //hier bekomme ich die beiden Werte eingelesen
for (int i = 0; i < n; i++) {
int connectionCount = i[2]; //Meine Überlegung über den ersten Input zu iterieren und dann den zweiten als int speichern für den Array
}
int[] railway = new int[connectionCount]; //Anzahl vom connectionCount
for (int i = 1; i <= n; i++){
railway[i] = In.readInt(); //filles the array
}
- Rest vom code welchen ich noch nicht habe -
}
return railway[];
}
}
Ist dies bis jetzt "korrekt"? Also kann ich überhaupt so einen Array erstellen?