AnonymousX Geschrieben 31. Januar 2011 Geschrieben 31. Januar 2011 Hallo, Ich mache gerade eine Übungsaufgabe zu Arrays. Im array sind einige unterschiedliche Zahlen enthalten. Wenn mir eine beliebige Zahl gegeben wird, muss ich diese mit den Werten im array vergleichen und alle Werte ausgeben, die kleiner als die vorgegebene Zahl sind. Vom Prinzip her klingt das (vielleicht für euch) so einfach, aber ich habe so einige Probleme, wie z.B. alle Werte auszugeben, die kleiner als die Zahl sind. Ich habs schon versucht mit der if-Schleife, aber das ist ganz schön aufwendig und nicht wirklich effektiv xD Ich bin noch Anfänger und wollte mal nach ein paar Tipps fragen. Bevor hier geflamed wird, es wird nicht nach einer kompletten und perfekten Lösung gefragt, lol. Ich habe Angst vor euch q_q Zitieren
Klotzkopp Geschrieben 31. Januar 2011 Geschrieben 31. Januar 2011 Ich habs schon versucht mit der if-Schleife, aber das ist ganz schön aufwendig und nicht wirklich effektiv xDIf-Schleife gibt's nicht. Aber zeig doch einfach mal, was du hast, dann dröseln wir auf, was falsch ist. Zitieren
AnonymousX Geschrieben 31. Januar 2011 Autor Geschrieben 31. Januar 2011 Eh ja, ich meine auch if-verzweigung oder so, Ihr wisst schon xD Diesen Test hab ich jetzt leider schon weg gemacht, weil ich jetzt mit der for-schleife rumprobieren wollte (was mir allerdings genauso probleme bereitet). Aber im Prinzip hab ich eine Variable mit der vorgegebenen Zahl. Diese hab ich dann immer mit den einzelnen Elementen mit der if-verzweigung verglichen und wenn die Zahl größer als der Wert im jeweiligen Element war, dann sollten alle Werte der Elemente ausgegeben werden, die eben kleiner als die Zahl waren. Ich hab dann die Ausgabe immer wieder einzeln für jedes Element geschrieben. Die Zahl habe ich immer wieder mit jedem Element verglichen. Ich hoffe Ihr könnt mich einigermaßen verstehen, bin noch nicht so gut in den Ausdrücken. Im Prinzip hat das auch funktioniert, was ich gemacht habe, nur es sieht nicht sonderlich schön aus und spätestens dann wenn im array viele Werte gespeichert sind, wird es... Um mich etwas deutlicher auszudrücken, hier ein kurzes Beispiel: int array[]={10, 20, 30, ...}; n = (beliebige Zahl); if(n <= array[0]){ System.out.print("zu klein."); } else if(n <= array[1]){ System.out.print(array[0]); } else if(n <= array[2]){ System.out.println(array[0]); System.out.print(array[1]); } . . . So in der Art. Nicht gerade toll, ich weiß :/ Zitieren
Klotzkopp Geschrieben 1. Februar 2011 Geschrieben 1. Februar 2011 Kannst du mit einer for-Schleife alle Werte im Array ausgeben, erst einmal ohne Vergleiche? Zitieren
lilith2k3 Geschrieben 1. Februar 2011 Geschrieben 1. Februar 2011 Naja, im Prinzip hast Du verstanden worum es geht. Du hast eine wiederkehrende Abfrage if ($Bedingung) dann $Aktion und Du hast das Array, welches Du durchläufst Array[0], Array[1] etc. Das ist vom Prinzip her schoneinmal der richtige Ansatz. Was Dir fehlt ist eine Art von Automatik, also quasi jemand, der für Dich das Zählen übernimmt. Und Klotzkopp gibt Dir schon einen Tipp in die Richtung in die es geht Zitieren
SaJu Geschrieben 1. Februar 2011 Geschrieben 1. Februar 2011 Ich würde zuerst mit einer for-Schleife alle Werte ausgeben lassen und anschließend mit BUBBLE SORT (Java, C++) | Algorithms and Data Structures oder SELECTION SORT (Java, C++) | Algorithms and Data Structures die Zahlen sortieren. Danach kann man diese auch leicht vergleichen. Zitieren
AnonymousX Geschrieben 1. Februar 2011 Autor Geschrieben 1. Februar 2011 Danke erstmal für die Antworten! Also, ich habe erstmal das gemacht, was Klotzkopp mir vorgeschlagen hat - erstmal eine for-Schleife ohne Vergleich gemacht. Hab aber auch gleich schon weiterüberlegt und bin zu dem Ergebnis gekommen: Beispiel: int array[] = {30, 20, 10, 40, 100, 80, 70, 60, 90, 50}; int n = 60; for(int i = 0; i < array.length; i++){ if(array[i] < n){ System.out.println(array[i]); } } Das scheint auch gut zu klappen! Ist das so ungefähr wo Ihr hin wolltet? Jetzt wäre es vielleicht nicht schlecht die Werte sortiert auszugeben. Ich werd mir dazu mal die Links angucken, die SaJu gepostet hat. Danke nochmal an alle! Zitieren
Klotzkopp Geschrieben 1. Februar 2011 Geschrieben 1. Februar 2011 Ist das so ungefähr wo Ihr hin wolltet?Ja, genau darauf wollte ich hinaus Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.