Java :: Aufgabe #191 :: Lösung #3
3 Lösungen

#191
Ermittlung von Zeilen- und Spaltennummer eines 2D-Array-Feldes
Anfänger - Java
von hollst
- 09.02.2018 um 11:03 Uhr
Die Felder eines "unendlich" großen 2D-Arrays seien nach folgendem "Diagonal-Schema" nummeriert:
1 2 4 7 . . .
3 5 8 . . . .
6 9 . . . . .
10 . . . . . .
. . . . . . usw.
Man schreibe ein Programm, das für eine gegebene Feldnummer N die Zeilen- (ZN) und die Spaltennummer (SN) zurückgibt.
Zeilen- und Spaltennummerierungen beginnen wie üblich mit 0.
Beispiele:
N = 8 -> ZN = 1, SN = 2
N = 31 -> ZN = 2, SN = 5
1 2 4 7 . . .
3 5 8 . . . .
6 9 . . . . .
10 . . . . . .
. . . . . . usw.
Man schreibe ein Programm, das für eine gegebene Feldnummer N die Zeilen- (ZN) und die Spaltennummer (SN) zurückgibt.
Zeilen- und Spaltennummerierungen beginnen wie üblich mit 0.
Beispiele:
N = 8 -> ZN = 1, SN = 2
N = 31 -> ZN = 2, SN = 5
#3

von newToJava820 (90 Punkte)
- 27.08.2020 um 01:48 Uhr

package übung191; import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int z = 0; int Zeile = 0; int Spalte = 0; boolean ergebnis = false; //Frage mit eingabe in der Console System.out.println("Wie groß soll das 2D-Array sein?"); System.out.println("wv Zeilen:"); int y = sc.nextInt(); System.out.println("wv Spalten:"); int x = sc.nextInt(); int[][] array = new int[y][x]; //Array mit Zahlen wird erstellt for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { //(0/0) if (i == 0 && j == 0) { array[i][j] = j + 1; } //Erste Reihe if (i == 0 && j != 0) { array[i][j] = ++z + array[i][(j - 1)]; z = array[i][j] - array[i][(j - 1)]; } //letzte Spalte if (i != 0 && j == (x - 1)) { array[i][j] = (array[i][(j - 1)] - array[i][(j - 2)]) + array[i][(j - 1)]; } //Rest if (i != 0 && j != (x - 1)) { array[i][j] = array[(i - 1)][(j + 1)] + 1; } } } //Eingabe welche Zahl der User wissen möchte System.out.println("Welche Zahl suchst du?"); int eingabe = sc.nextInt(); //Suche der Zahl und ob sie überhaupt im Array ist for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if (eingabe == array[i][j]) { ergebnis = true; Zeile = i; Spalte = j; } } } //Ausgabe des Ergebnis if (ergebnis == true) { System.out.println("*********************"); System.out.println("Deine Zahl " + eingabe + " ist in:"); System.out.println("Zeile: " + Zeile + " - Spalte: " + Spalte); } else { System.out.println("Deine Zahl ist leider nicht im array"); } //Für manuelle überprüfung - Tabelle wird ausgegeben falls gewünscht System.out.println("*********************"); System.out.println("Möchtest du die Tabelle manuel überprüfen? ja(j) - nein(n)"); String manuell = sc.next(); if (manuell.equals("j")) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.print(array[i][j] + " "); } System.out.println(); } } else { System.out.println("(n) oder Falsche eingabe - terminate"); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1