Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

For Schleife...Array

Empfohlene Antworten

Veröffentlicht

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

mach nen bubblesort (wikipedia oder google, ne?!)

speicher die zahlen in ein array

und dann nimmst du einfach die erste und letzte zahl raus...

ne wollte es mit for schleife! "siehe oben"

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

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

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

also ich weiß nicht wie ich anfangen soll!!

braucht er nicht 2 for schleifen?

einmal um die größte und einmal um die kleinste zahl rauszufinden?

pftz

ich nehm bubblesort...

das fahrrad fährt ja auch nicht mit einem rad sondern mit 2 :P

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:

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;

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.

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 .

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.

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.

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

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.

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

und bubblesort ist dafür sehr gut geeignet...

Für die hier vorgetragene Aufgabenstellung: Ganz sicher nicht!

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.