Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben
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...

Geschrieben
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 ;)
Geschrieben
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 :P
Nicht, dass das irgendwas mit dem Thema zu tun hat :rolleyes:
Geschrieben

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;

Geschrieben

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.

Geschrieben
hab eine Lösung gefunden, danke
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.

Wie du das löst, hat carstenj schon geschrieben ;)

Geschrieben
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 .

Geschrieben
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.

Geschrieben

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.

Geschrieben

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...

Geschrieben

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.

Geschrieben
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...

:rolleyes: :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 ...

Geschrieben

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 ;)

Geschrieben
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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...