[C/C++] Nen kleines Ausgabeproblem

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von xampp, 8. Januar 2007 .

Schlagworte:
  1. 8. Januar 2007
    Nen kleines Ausgabeproblem

    huhu,

    also ich muss ja nen Taschenrechner in möglichst vielen Sprachen coden.. delphi, php und perl hab ich nun 100% hinbekommen..

    nun bin ich bei c++

    also nun hab ich wieder das problem... wenn b = 0 ist, dann soll unten ausgegeben werden, dass die division durch 0 nicht erlaubt ist.. wenn b aber nicht 0 ist, dann soll er normal weiter rechnen..

    habs mit ner if then else gemacht.. aber geht leider nicht richtig.. was muss ich da bei diesem kleinen prob noch ändern? der rest geht einwandfrei, wie ich das will..

    hier der code

    und besten dank schonmal

    Code:
    #include <iostream> // Einbinden der Datei iostream.h
    using namespace std; // somit muss man nicht mehr überall 'std::' zu schreiben.. bsp: 'std::count' oder 'std::endl'
    
    int main() {
     cout<<"Taschenrechner"<<endl; // Überschrift
     cout<<""<<endl; // Leerzeile
     cout<<""<<endl; // Leerzeile
     cout<<"Zahl 1: ";
     int a; // Speicherplatz für die Variable 'a' reservieren
     cin>>a; // Einlesen von Zahl 1 und Zuweisung des Wertes an die Variable 'a'
     cout<<""<<endl; // Leerzeile
     cout<<"Zahl 2: ";
     int b; // Speicherplatz für die Variable 'b' reservieren
     cin>>b; // Einlesen von Zahl 2 und Zuweisung des Wertes an die Variable 'b'
    
     // Berechnungen
     int Addition; // Speicherplatz für die Variable 'Addition' reservieren
     Addition=a+b; // der Variable 'Addition' eine Rechenoperation zuweisen
    
     int Subtraktion; // Speicherplatz für die Variable 'Subtraktion' reservieren
     Subtraktion=a-b; // der Variable 'Subtraktion' eine Rechenoperation zuweisen
    
     int Multiplikation; // Speicherplatz für die Variable 'Multiplikation' reservieren
     Multiplikation=a*b; // der Variable 'Multiplikation' eine Rechenoperation zuweisen
    
     if (b == 0 ) {
     cout<<"Division: "<<a<<" : "<<b<<" = "<<"Die Division durch die Zahl 0 ist nicht erlaubt"<<endl;
     } else {
     int Division; // Speicherplatz für die Variable 'Division' reservieren
     Division=a/b; // der Variable 'Division' eine Rechenoperation zuweisen
     }
    
     cout<<""<<endl; // Leerzeile
     cout<<""<<endl; // Leerzeile
     cout<<"Ergebnisse"<<endl; // Überschrift
     cout<<""<<endl; // Leerzeile
     cout<<"Addition: "<<a<<" + "<<b<<" = "<<Addition<<endl;
     cout<<"Subtraktion: "<<a<<" - "<<b<<" = "<<Subtraktion<<endl;
     cout<<"Multiplikation: "<<a<<" * "<<b<<" = "<<Multiplikation<<endl;
     int Division;
     cout<<"Division: "<<a<<" : "<<b<<" = "<<Division<<endl;
    
     return 0;
    }
     
  2. 8. Januar 2007
    AW: Nen kleines Ausgabeproblem

    Der Fehler ist ganz einfach. Am Schluss gibst du die Variable Division aus, der du noch keinen Wert zugewiesen hast. Dort steht nur irgendein zufälliger Müll der dort grad im Speicher steht.
    Die Variable Division im if-block hat damit nichts zutun, sie ist nur innerhalb der geschweiften Klammern gültig.

    Du musst ausserhalb vom if bereits die Variable anlegen.
     
  3. 9. Januar 2007
    AW: Nen kleines Ausgabeproblem

    oki..

    aber der wert für die variable wird ja in der if anweisung festgelegt..

    wie krieg ich den wert dann aus der if schleife sozusagen raus? sodass ich den also unten wieder nutzbar machen kann?

    dass da nur müll drin steht, das hab ich vorhin auch gesehen^^

    danke schonmal..

    mfg xampp
     
  4. 9. Januar 2007
    AW: Nen kleines Ausgabeproblem

    Schreib das int Division einfach über if (b == 0 ), setz es auf 0 oder irgend ein anderen Wert und lösch alle anderen.
     
  5. 9. Januar 2007
    AW: Nen kleines Ausgabeproblem

    huhu,

    danke schonmal.. jetzt klappt zwar die rechnung richtig, aber er gibt mir immernoch nicht den satz aus, wenn b 0 ist..

    hier der code..

    Code:
    int Division; // Speicherplatz für die Variable 'Division' reservieren
     if (b == 0 ) {
     Division="Die Division durch Null ist nicht erlaubt";
     } else {
     Division=a/b; // der Variable 'Division' eine Rechenoperation zuweisen
     }
    
     cout<<"Division: "<<a<<" : "<<b<<" = "<<Division<<endl;
    ich kann mir vostellen, dass ich den satz deswegen nicht ausgeben kann, da ich Division ja als integer gesetzt habe..

    also muss ich das in nen string umwandeln? aber wie?

    in delphi gings einfach mit intTOstr(variable)


    danke schonmal

    mfg xampp
     
  6. 9. Januar 2007
    AW: Nen kleines Ausgabeproblem

    du kanste einem Integer Wert keinen String Wert zuordnen!!
     
  7. 9. Januar 2007
    AW: Nen kleines Ausgabeproblem

    xD du hastes richtig erkannt, nen string bekommst du nie in eine vari vom typ int.
    Das wäre eine möglichkeit:
    Code:
    int Division;
    bool Division_error = 0;
     if (b == 0 ) {
     Division_error=1;
     } else {
     Division=a/b; // der Variable 'Division' eine Rechenoperation zuweisen
     }
    if (Division_error) 
    cout << "Durch null dividieren ist verboten!"; //string wie du willst
    else 
     cout<<"Division: "<<a<<" : "<<b<<" = "<<Division<<endl;
    
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.