Pimp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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 Zitieren
k4fu Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 mach nen bubblesort (wikipedia oder google, ne?!) speicher die zahlen in ein array und dann nimmst du einfach die erste und letzte zahl raus... Zitieren
Pimp Geschrieben 14. Juli 2006 Autor Geschrieben 14. Juli 2006 ne wollte es mit for schleife! "siehe oben" Zitieren
carstenj Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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 Zitieren
k4fu Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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... Zitieren
Klotzkopp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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 Zitieren
Pimp Geschrieben 14. Juli 2006 Autor Geschrieben 14. Juli 2006 also ich weiß nicht wie ich anfangen soll!! Zitieren
Klotzkopp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 Kannst du denn einen Algorithmus formulieren? Das ist der erste Schritt. Zitieren
k4fu Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 braucht er nicht 2 for schleifen? einmal um die größte und einmal um die kleinste zahl rauszufinden? Zitieren
Klotzkopp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 Wenn du zwei Brötchen kaufen willst, läufst du dann zweimal zum Bäcker? Das lässt sich prima mit einer Schleife erledigen. Zitieren
k4fu Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 pftz ich nehm bubblesort... das fahrrad fährt ja auch nicht mit einem rad sondern mit 2 Zitieren
Klotzkopp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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 Zitieren
Pimp Geschrieben 14. Juli 2006 Autor Geschrieben 14. Juli 2006 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; Zitieren
carstenj Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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. Zitieren
Klotzkopp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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 Zitieren
Pimp Geschrieben 14. Juli 2006 Autor Geschrieben 14. Juli 2006 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 . Zitieren
Klotzkopp Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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. Zitieren
carstenj Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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. Zitieren
k4fu Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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... Zitieren
carstenj Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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. Zitieren
Eytibi Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 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 ... Zitieren
Bubble Geschrieben 14. Juli 2006 Geschrieben 14. Juli 2006 und bubblesort ist dafür sehr gut geeignet... Für die hier vorgetragene Aufgabenstellung: Ganz sicher nicht! Zitieren
Tobias2k6 Geschrieben 18. Juli 2006 Geschrieben 18. Juli 2006 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 Zitieren
Klotzkopp Geschrieben 18. Juli 2006 Geschrieben 18. Juli 2006 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. Zitieren
Klotzkopp Geschrieben 19. Juli 2006 Geschrieben 19. Juli 2006 Die Diskussion über die Effizienz von Sortieralgorithmen bitte hier weiterführen, damit wir hier beim Thema bleiben. 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.