Referenzen?!?



  • hallo!

    in der schule haben wir die aufgabenstellunf bekommen, zwei Brüche addieren zu lassen.

    dabei sollen wir 3 funktionen schreiben: eingabe, addieren, ausgabe

    ich bin soweit gekommen:

    #include <iostream.h>
    #include <conio.h>
    
    void eingabe(int Z, int N)
     {
      cout << "Geben Sie den Zähler ein: " << endl;
      cin >> Z;
      cout << "Geben Sie den Nenner ein: " << endl;
      cin >> N;
     }
    
    void addieren(int Z1, int N1, int Z2, int N2, int &iZE, int &iNE)
     {
      iZE = Z1*N2+Z2*N1;
      iNE = N1*N2;
     }
    
    void ausgabe(int a, int b)
     {
     cout << a << "/" << b << endl;
     }
    //---------------------------------------------------------------------------
    
    int main()
    {
    int Z1,N1,Z2,N2,Z,N;
    
    eingabe(Z1,N1);
    eingabe(Z2,N2);
    addieren(Z1,N1,Z2,N2,Z,N);
    ausgabe(Z,N);
     getch();
    return 0;
    }
    //---------------------------------------------------------------------------
    

    bei mir zeigt es aber immer viel zu hohe werte an...
    stimmt denn der code?!? insbesondere die Referenzen?

    vielen dank



  • Hallo

    dein Programm ist fast richtig. Nur bei der Eingabe-Funktionen fehlen bei den Parametern die Referenzen. Denn so werden die eingegebenen Werte gar nicht an die Variablen im Hauptprogramm weitergegeben. Damit bleiben aber dort die uninitialisierten Werte bestehen, die deine zu hohen und zufälligen Ergebnisse verursachen.

    Noch ein Hinweis zum Stil : alle Standardheader werden ohne .h included, alles andere ist veraltet und nicht standardkonform. Du must dann noch den namespace std benutzen, um die Symbole aus der iostream einzubinden.

    #include <iostream>
    ...
      std::cout << "Geben Sie den Zähler ein: " << std::endl;
    

    Desweiteren ist conio.h und getch() auch nicht stanjdardkonform. Hier findest du eine Erklärung, wie du das Automatische Schießen des Konsolenfensters verhindern kannst.

    Und zu guter letzt : Solange du reine Konsolenprogramme ohne VCL-Unterstützung schreibst, gehört das ins C++ Forum.

    bis bald
    akari


Log in to reply