Probleme mit Taschenrechner den ich programmiere fürs Studium

  • Hallo,

    ich frage nach dem Operator doch ich kann keine eingeben, da er die Abfrage direkt überspringt. Schreibe das Programm in C. Kann mir wer helfen?

    #include <stdio.h>

    int main()
    {
    double z1=0;
    double z2=0;
    double z3=0;
    char z;

    printf("Geben Sie die erste Zahl ein:");
    scanf("%lf", &z1);

    printf("Geben Sie die zweite Zahl ein:");
    scanf("%lf", &z2);

    printf("Geben Sie den Operator an");
    getchar();


    switch(z)
    {
    case '-':z3=z1-z2;
    printf("Ergebnis ist: %lf",z3);

    case '*':z3=z1*z2;
    printf("Ergebnis ist: %lf",z3);

    case '+':z3=z1+z2;
    printf("Ergebnis ist: %lf",z3);

    case '/':z3=z1/z2;
    printf("Ergebnis ist: %lf",z3);


    }

    }

    Bitte um Hilfe

    Gruß

    2 Mal editiert, zuletzt von sander (27. Oktober 2012 um 22:29)

  • Kenne mich nicht wirklich gut mit C aus.. Trotzdem, meine Vermutung: Du hast vom scanf davor noch ein Newline drin, und getchar() nimmt einfach dieses Newline. Versuch mal, zweimal getChar() aufzurufen. (Btw. hast du keine Zuweisung zu z dort, und bei switch gehört glaube ich ein break rein, da er sonst alles ab dem passenden case-Operator ausführt.

    l.g.

  • Ich weiß nur nicht wie ich in getchar() die variable deklarieren soll. Kann mir wer dort ein Tipp geben?
    ich habe char z; deklariert nur wenn ich es so schreibe getchar(z) dann kommt ein error

  • Ich weiß nur nicht wie ich in getchar() die variable deklarieren soll. Kann mir wer dort ein Tipp geben?
    ich habe char z; deklariert nur wenn ich es so schreibe getchar(z) dann kommt ein error

    z = getchar();

  • Zu den newlines. Wie bekomme ich die denn raus? ich habe das doch schon durch die static double abgesichert oder nicht?

    EDIT:DANKE FUNKTIONIERT EINWANDFREI
    Danke an die HILFE!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!