2 Zahlen vertauschen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von QLiMaX, 14. November 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. November 2006
    Ich habe eine Frage, wieso vertauscht er mir die Zahlen nicht?

    Hier der Quellcode:
    Code:
    #include <conio.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    void tausche (int,int);
    void main ()
    
    {
     int a=2, b=3;
     tausche (a,b);
     printf (" a=%i b=%i",a,b);
     getch();
    }
    void tausche (int x1, int x2)
    {
     int t;
     t=x1;
     x1=x2;
     x2=t;
    }
    
    Thx für antworten

    Bewertung wäre drin...
     
  2. 14. November 2006
    AW: 2 Zahlen vertauschen

    bei dem Funktionsaufruf wird eine locale Kopie der variablen angefertigt.. Problem lösen kannst du dadurch, bei der funktionsdefinition/ -dekleration ein & vor die variablennamen zu schreiben => tausche(int& a,int& b); dadurch wird die variable per Referenz übergeben, d.h. du kannst sie verändern. zusätzlich kannst du dich auch nochmnal über pointer informieren, damit gehts auch..

    hoffe geholfen zu haben
     
  3. 14. November 2006
    AW: 2 Zahlen vertauschen

    Vielen Dank für die schnelle Antwort!
    Bewertung ist raus. Nur habe ich nun das Problem das er mir folgende ausgibt:
    [Linker Error] Unresolved external 'tausche(int, int)' referenced from D:\...\FUNKTIONEN\TAUSCHEN.OBJ

    Habe den Quellcode nun so verbessert:
    Code:
    #include <conio.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    void tausche (int,int);
    void main ()
    
    {
     int a=2, b=3;
     tausche (a,b);
     printf (" a=%i b=%i",a,b);
     getch();
    }
    void tausche (int& a, int& b)
    {
     int t;
     t=a;
     a=b;
     b=t;
    }
    Gruß
    Qlimax
     
  4. 14. November 2006
    AW: 2 Zahlen vertauschen

    Tach,

    du must oben beim Prototypen natürlich auch die Referenz angeben.
    so müsste das gehen:
    Code:
    void tausche (int&,int&);
    PS: Bei code-Angaben immer code-tags verwenden, da tut man sich leichter
     
  5. 14. November 2006
    AW: 2 Zahlen vertauschen

    Danke für die rasche Antwort.
    Hab noch ne kleine Frage:
    Warum vertauscht er nun mit dem zusätzlichen & und warum vertauschte er die Zahlen nicht schon im ersten Quellcode?

    Bewertung ist raus.
    Werde mich bessern

    Gruß
    Qlimax
     
  6. 14. November 2006
    AW: 2 Zahlen vertauschen

    Im ersten Quellcode wird bei der Übergabe eine Kopie diener Variable angelegt. Also die Funktion arbeitet mit einer 'eigenen' Variable.
    Beim zweiten Code arbeitet man mit einer Referenz, d.h. die Funktion erhält eine Referenz der Variable. wenn die Funktion nun diese Referenz verändert, wirkt sich das natürlich auch auf die Original-Variable aus.
     
  7. 14. November 2006
    AW: 2 Zahlen vertauschen

    Danke
    jetzt hab ichs verstanden.

    Thema is damit closed

    Gruß Qlimax
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.