Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

mein Programm zieht sich ein paar Zufallszahlen und sotiert diese auch.

Wie ich kann ich nun die Anzahl der Durchgänge ausgeben ?

danke schonmal

# include <iostream.h>

# include <conio.h>

# include <stdio.h>

# include <math.h>


main()

{

int i,k,c,f,zahlenhaufen[10],zwischen;


/*Eingabe*/


randomize();

for (i=0;i<10;i++)

{

   zahlenhaufen[i]=random(500)+1     ;

}




/*Verarbeitung*/


for (k=1;k<10;k=k+1)

{

for (c=1;c<=(10-k);c=c+1)

{

if (zahlenhaufen[c] > zahlenhaufen[c+1])

{

zwischen = zahlenhaufen[c];

zahlenhaufen[c] = zahlenhaufen[c+1];

zahlenhaufen[c+1] = zwischen;

}

}

}


/*Ausgabe*/

for (f=1;f<10;f=f+1)

{

cout<<"\n"<<zahlenhaufen[f]<<"\n";

}

/*No comment*/

getch();

}

Geschrieben

Was meinst du mit "Durchgänge"? Anzahl der Vergleiche? Anzahl der Vertauschungen?

In jedem Fall musst du eine Zählvariable deklarieren, mit 0 initialisieren und dann an der Stelle im Code, an der das passiert, was du zählen möchtest, um 1 erhöhen.

Geschrieben

Anzahl der Vertauschungen .. .

hab in die IF Anweisung

tauschen=tauschen+1; ( voher deklariert )

und es dementsprechnend ausgegeben und es Funktioniert

danke für deine Antwort

Geschrieben

hab in die IF Anweisung

tauschen=tauschen+1; ( voher deklariert )

und es dementsprechnend ausgegeben und es Funktioniert

Das ist richtig, es geht aber noch kürzer, und sieht nicht so aus wie BASIC ;)

++tauschen;

Geschrieben
Das ist richtig, es geht aber noch kürzer, und sieht nicht so aus wie BASIC ;)

++tauschen;

Frage am Rande:

Gibts Performanceunterschiede zwischen Pre- und Postinkrement?

Ich mach aus Gewohnheit eigentlich immer Postinkrement.

(Das der Zuweisungs-/Erhöhungsunterschied ist mir bekannt, dennoch würd's mich interessieren.)

Geschrieben
Frage am Rande:

Gibts Performanceunterschiede zwischen Pre- und Postinkrement?

In diesem Fall vermutlich nicht.

Ich mach aus Gewohnheit eigentlich immer Postinkrement.

(Das der Zuweisungs-/Erhöhungsunterschied ist mir bekannt, dennoch würd's mich interessieren.)

Mach lieber Präinkrement, wenn's egal ist. Der besondere Nebeneffekt des Postinkrement (nämlich dass der ganze Ausdruck den "alten" Wert hat), kann Performance kosten, wenn es kein triviales Objekt ist, das inkrementiert wird.

So könnte man sich z.B. einen komplexen Iterator vorstellen: Präinkrement ist da ziemlich einfach umzusetzen, beim Postinkrement muss allerdings der Operator eine Kopie des Iterator-Objekts erstellen, damit er den "alten" Wert zurückgeben kann.

Wenn der Rückgabewert des Operators wie hier gar nicht verwendet wird, sollte ein moderner Compiler das optimieren können. Aber ich finde, man sollte sich gleich angewöhnen, die Variante zu benutzen, die in den wenigen Fällen, wo es dann doch drauf ankommt, die bessere ist. Postinkrement benutze ich nur dann, wenn ich den speziellen Seiteneffekt wirklich brauche.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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