0 Daumen
1,1k Aufrufe

int i=0;
int j=0;
while (i<3) {

std::cout << i << ' ';
++i;
std::swap (i,j);
}

Aufgabe:
Man muss in einer Augabe den Output dieses Programms angeben. 

Was ich denke: 
Ich hätte gesagt, dass i=0
in die While Schlaufe hinein geht, und dann 0 ausgeprintet wird. 
Dann wird es Inkrementiert und geht als i = 1 in die Schlaufe hinein und dann wird  1 outgeputtet. ... 

Output: 0 1 2 

Hilfe & Was mich verwirrt:
(1)
Bei

std::cout << " ";

folgen meisten Anführungs und Schluszeichen. Im obigen Programm werden ' ' benutzt, dann frage ich mich ob das funktioniert. 

(2) Bei

std::swap (i,j); 

Kann ich mir vorstellen, dass wenn i = 0 ist es mit j = 0 vertauschw wird, aber ich bin mir nicht sicher weil es mir scheint, dass swap in einer externen datei definiert ist aber ich sehe nur was oben steht und nichts anderes. 
Ist das eine eingebaute bzw. reservierte C++ Funktion ? 
Ich gehe aber davon aus dass da nichts passiert sondern das lediglich für verwirrung beim Schüler sorgt. 

Kann jemand helfen ? 

Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort

Hast du's schon mal selber ausgeführt?
Bin nur in C ein wenig bewandert, aber wenn ich mir das so anschaue komme ich darauf:
1. Durchlauf:
i=0
Ausgabe: 0
i=1 //i++
tausche i=1 mit j=0 //swap
=> i=0
---------------------------------------------------
2.Durchlauf:

i=0
Ausgabe: 0
i = 1 //i++
tausche i=1 mit j=1
=> i=1
---------------------------------------------------
3. Durchlauf:
i=1
Ausgabe: 1
i=2 //i++
tausche i=2 mit j=1
=> i=1


und so weiter...
Ergibt das am Ende die Ausgabe: 0 0 1 1 2 2
Also dient es nur zur doppelten Ausgabe


LG

Avatar von

Danke !

Nein ich hatte diese Aufgabe auf dem Blatt Papier und keine Entwicklungsumgebung.

Ich wusste nicht, dass ein Abstand mit ‚ ‘ ausgegeben werden kann und ich wusste nicht, dass es swap bereits gibt.

Ich dachte, dafür müsste man  eine Funktion schreiben und auf dem Blatt Papier das ich hatte steht alleine nur das was ich oben als code abgetippt habe.

Wieso existiert die Funktion Swap wenn sie nicht definiert ist ? Weisst du, ob sie Teil der Standardbibliothek von C++ ist?


Danke für die Antwort. :)

Nein ich hatte diese Aufgabe auf dem Blatt Papier und keine Entwicklungsumgebung.

Einfach "C++ Compiler online" googlen, dann den Code in die Main-Methode kopieren und ausführen. ;)


Ich wusste nicht, dass ein Abstand mit ‚ ‘ ausgegeben werden kann und ich wusste nicht, dass es swap bereits gibt.

Der "Abstand" ist einfach nur ein Leerzeichen.

Man könnte auch das schreiben:

std::cout << i << '-';
 Dann würde die Ausgabe so aussehen:
0-0-1-1-2-2-
Wieso existiert die Funktion Swap wenn sie nicht definiert ist ? Weisst du, ob sie Teil der Standardbibliothek von C++ ist?

Nach kurzem googlen bekommt man folgende Antwort:

"The function std::swap() is a built-in function in the C++ Standard Template Library (STL) which swaps the value of two variables."

Also ist die Funktion schon definiert und müsste auch Standard sein, da ich sie nicht extra importieren musste.


Eine wichtige Regel beim programmieren ist: Google ist dein Freund und Helfer! :D


Klärt das alle deine Fragen? ^^

Perfekt, vielen Dank !

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community