2dim - Array Ausgabe von Zahlen, teilbar durch 3.

WonderWoman

Mitglied
Hey Hey;
ich hab mal wieder ein Problemchen und hoffe mal wieder auf schnelle Hilfe 🙂

Meine Aufgabe lautet wie folgt:

Ausgabe 2-dimenionales, nicht zwangsläufig symmetrisches Array mit for-each-Schleife. Es sollen nur alle Zahlen ausgegeben werden, die durch 3 teilbar sind; gefolgt in Klammer von dem nächsten Vielfachen von 3.

Java:
int [][]data = {
				{3, 45, 23, 1, 12}, 
				{},
				{12, 3, 5, 6},
				{3, 2, 4,7}
		};

gewünschte Ausgabe des Programms:
3(6) 45(48) 12(15)

12(15) 3(6) 6(9)
3(6)



Ich weiss das ich die Teilbarkeit durch drei einfach mit Modulo 3 == 0 berechnen kann. D.h. wenn 0 rauskommt ist die Zahl teilbar. Das nächste Vielfache von 3 kann ich ja theoretisch in der Ausgabe einfach mit +3 anhängen in Klammern.

So also ich hab eine Idee aber keine Ahnung wie ich das Programmieren kann. Sodass auch die Ausgabe wie gewünscht aussieht. Kann mir vielleicht jemand mit einem Tip erst mal weiterhelfen wie ich die Sache angehen sollte? Vielleicht komm ich dann alleine auf den Rest.

Danke Lieben Gruss
 
nette frage ^^ ich hab mich mal mit Google durchgequält.

HIER hast du vielleicht eine Anregung

ich selbst kann dir da leider nicht weiterhelfen, fallst du es hinbekommst würde ich die Lösung gerne erfahren danke. 😉
 
Ein paar Tipps:
Um den Array zu durchlaufen solltest du eine verschachtelte for-Schleife nehmen. Überleg dir, wie du die Subarrays durchläufst, da sie unterschiedlich lang sind. Müsstest also eine Abfrage mit *.lenght für die innere Schleife machen, sonst erreichst du entweder nicht alle Werte oder du erhälst einen OutOfBoundsException-Fehler.
 
So ich hab das Problem gelöst.
Hier meine Lösung:

Java:
public class Arrays {

	public static void main(String[] args) {
		int [][]data = {
				{3, 45, 23, 1, 12}, 
				{},
				{12, 3, 5, 6},
				{3, 2, 4,7}
		};
		
		for (int [] reihe: data){
			for (int spalte: reihe){
				if ((spalte % 3)==0) System.out.print (spalte+ "("+(spalte + 3)+")" + " ");
			}
			
			System.out.println();
		}

	}

}

Ausgabe:

Java:
3(6) 45(48) 12(15) 

12(15) 3(6) 6(9) 
3(6)
 

Zurück
Oben