Veröffentlicht 14. Juli 200619 j Hallo, würde gerne wissen wie ich mehrere Zahlen vergleichen kann und dann nur die Kleinste und die Größte ausgeben kann: (mit for schleife) int zArray [] = {1,36,46,18,55,100}; int i, max, min; for(i=0; i ???;i++) ... vielen dank
14. Juli 200619 j mach nen bubblesort (wikipedia oder google, ne?!) speicher die zahlen in ein array und dann nimmst du einfach die erste und letzte zahl raus...
14. Juli 200619 j Hi, Bubblesort ist überflüssig, da er ja nix sortieren will. Um die größte bzw. kleinste Zahl herauszufiltern, kannst du wie folgt vorgehen: 1. Geh davon aus, dass die erste Zahl die größte bzw. kleinst ist 2. Vergleiche die Zahl in einer Schleife mit der nächsten
14. Juli 200619 j Hi, Bubblesort ist überflüssig, da er ja nix sortieren will. Um die größte bzw. kleinste Zahl herauszufiltern, kannst du wie folgt vorgehen: 1. Geh davon aus, dass die erste Zahl die größte bzw. kleinst ist 2. Vergleiche die Zahl in einer Schleife mit der nächsten gehn wir mal von der reihenfolge: 5, 1, 10, 4 aus wie bitte willst du mit deinem system die größte oder kleine rausfinden??? omg!!! weist du überhaupt was bubblesort ist? wie er geht? mach bubblesort.... sind 2 for schleifen...
14. Juli 200619 j wie bitte willst du mit deinem system die größte oder kleine rausfinden???Genauso, wie er es beschrieben hat. Auch wenn du die Vorgehensweise nicht verstehst, brauchst du nicht mit multiplen Satzzeichen um dich zu werfen. mach bubblesort.... sind 2 for schleifen...Eben. Für diese Aufgabenstellung reicht eine. Sollte ein abgeschlossener FIAE eigentlich wissen
14. Juli 200619 j braucht er nicht 2 for schleifen? einmal um die größte und einmal um die kleinste zahl rauszufinden?
14. Juli 200619 j Wenn du zwei Brötchen kaufen willst, läufst du dann zweimal zum Bäcker? Das lässt sich prima mit einer Schleife erledigen.
14. Juli 200619 j pftz ich nehm bubblesort... das fahrrad fährt ja auch nicht mit einem rad sondern mit 2
14. Juli 200619 j pftz ich nehm bubblesort...Mach, was du willst. Du musst halt damit rechnen, dass die Laufzeit bei großen Arrays viel stärker ansteigt. Bubblesort ist O(n^2). Für dieses Problem kann man einfachere Algorithmen mit O(n) finden. das fahrrad fährt ja auch nicht mit einem rad sondern mit 2 Nicht, dass das irgendwas mit dem Thema zu tun hat
14. Juli 200619 j hab eine Lösung gefunden, danke int zahlenArray [] = {18,3,75,800}; int max=0,min,i; for(i=0; i<4; i++){ if(zahlenArray>max){ max=zahlenArray; }if(zahlenArray < min){ min = zahlenArray; } } cout<<max<<" ist die groesste Zahl "<<endl; cout<<min<<" ist die kleinste Zahl "<<endl;
14. Juli 200619 j Hi, weist du überhaupt was bubblesort ist? wie er geht? ja, weiss ich, weil ich dir sonst meine kompetente Antwort nicht hätte geben können. In der Programmierung geht es nicht nur darum, dass irgendetwas irgendwie funktioniert, sondern dass es auch effizient das tut, was es tun soll. Aber vielleicht lernst du das ja noch.
14. Juli 200619 j hab eine Lösung gefunden, dankeDie hat aber noch ein paar Probleme. Wenn du nur negative Zahlen in deinem Array hast, bleibt max 0. Und min initialisierst du gar nicht. Wie du das löst, hat carstenj schon geschrieben
14. Juli 200619 j Die hat aber noch ein paar Probleme. Wenn du nur negative Zahlen in deinem Array hast, bleibt max 0. Und min initialisierst du gar nicht. ne es geht...habs schon versucht .
14. Juli 200619 j ne es geht...habs schon versucht ."Beweis durch Beispiel" zählt bei Software leider nicht. Wenn du nur negative Zahlen in deinem Array hast, wird der Wert für max falsch sein. Garantiert. Und ob der Wert für min stimmt, ist mehr oder weniger Zufall. Daraus, dass das bei dir mit diesem konkreten Array klappt, kannst du also nicht folgern, dass der Code richtig ist.
14. Juli 200619 j Hi, was du auch noch verbessern könntest, wäre die Berücksichtigung der Länge des Arrays. Dein Beispiel überprüft nur die ersten 4 Zeichen. Wenn das Array allerdings länger ist, werden die restlichen Zahlen außer Acht gelassen.
14. Juli 200619 j hier gehts nicht um effizienz... er soll was lernen und bubblesort ist dafür sehr gut geeignet... btw für die einen sind es brötchen für die anderen fahrräder...
14. Juli 200619 j Hi, hier gehts nicht um effizienz... aha. Hauptsache funktioniert. Richtig? er soll was lernen Interessant. Und was soll er lernen? Anforderungen richtig zu interpretieren und notwendige Arbeiten zu definieren ist ein nicht unwichtiger Punkt in der Softwareentwicklung. Es gibt "nice-to-have" Features und grundlegende Elemente. Das Sortieren ist aber höchstens "nice-to-have", und wenn es um Performance geht, nichtmal das! und bubblesort ist dafür sehr gut geeignet... Wofür? Wenn man Zahlenreihen sortieren soll, ist Bubblesort mit Sicherheit geeignet. Aber darum ging es hier nicht. pftz ich nehm bubblesort... Uneinsichtigkeit ist übrigens auch eine tolle Eigenschaft, gerade für Programmierer.
14. Juli 200619 j hier gehts nicht um effizienz... er soll was lernen und bubblesort ist dafür sehr gut geeignet... btw für die einen sind es brötchen für die anderen fahrräder... :eek Du willst es nicht verstehen, oder!? Es bringt doch nix ein simples Problem hyperkompliziert zu lösen, nur damit man was lernt. Wenn man z.B. Bubblesort lernen will, dann sucht man sich auch ein entsprechendes Beispiel. int max = 0; int min = 0; for(int i = 0; i< #Größe des Arrays#; i++) { if(i == 0) { min = array[i]; max = array[i] } if(min > array[i]) min = array[i]; if(max < array[i]) max = array[i]; } ^^ Das sollte alle Einträge des Arrays berücksichtigen und auch bei negativen Zahlen funktionieren ...
14. Juli 200619 j und bubblesort ist dafür sehr gut geeignet... Für die hier vorgetragene Aufgabenstellung: Ganz sicher nicht!
18. Juli 200619 j Ich würd es auch mit 2 for-schleifen lösen. Es sei den ich bastel mir mit viel aufawand noch ein paar if-abfrage in die for-schleife. Mit einer forschleife würdest du das array ja nur einmal durchlesen, also den ersten durchlauf des bubblesort machen. Damit hast du dann nicht zwingend die kleinste zahl ermittelt. Zumindest so wie ich mir das jetzt denke, kann sein dasn wir aneinander vorbei denken
18. Juli 200619 j Ich würd es auch mit 2 for-schleifen lösen. Es sei den ich bastel mir mit viel aufawand noch ein paar if-abfrage in die for-schleife.Hast du Eytibis Code nicht gesehen? Nennst du das "viel Aufwand"? Das erste if könnte man sogar noch loswerden. Mit einer forschleife würdest du das array ja nur einmal durchlesen, also den ersten durchlauf des bubblesort machen. Damit hast du dann nicht zwingend die kleinste zahl ermittelt.Woher kommt nur diese Fixierung auf Bubblesort? So mancher scheint das für die Silberkugel für alle Softwareprobleme zu halten. Um das kleinste und größte Element zu ermitteln, musst du nicht sortieren. Das Problem lässt sich in linearer Zeit lösen. Jeder Sortieralgorithmus ist weniger effizient.
19. Juli 200619 j Die Diskussion über die Effizienz von Sortieralgorithmen bitte hier weiterführen, damit wir hier beim Thema bleiben.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.