Ratlosigkeit bei C-Programm (einfacher Taschenrechner)



  • Hallo liebes Forum!

    Ich bin dabei bei C ziemlich neu zu starten und hänge zurzeit bei einem kleinen Programm um mich einzuleben.

    #include <stdio.h>
    
    int Addition(int Summand1, int Summand2);
    int Subtraktion(int Subtrahend1, int Subtrahend2);
    int Multiplikation(int Multiplikator1, int Multiplikator2);
    int Division(int Dividend1, int Dividend2);
    
    int main(int argc, char* argv[])
    {
        int a,b,ergebnis;
        char op;
        printf("Zahl 1 eingeben: ");
        scanf("%d",&a);
        printf("Zahl 2 eingeben: ");
        scanf("%d",&b);
        printf("Operator eingeben (+,-,*,/): ");
        scanf("%s",&op); //op=getchar();
    
        switch(op)
        {
            case '+': ergebnis=Addition(a,b); break;
            case '-': ergebnis=Subtraktion(a,b); break;
            case '*': ergebnis=Multiplikation(a,b); break;
            case '/': ergebnis=Division(a,b); break;
        }
    
        printf("\n_________________________\nDas Ergebnis ist: %d\n",ergebnis);
    
        return 0;
    }
    
    int Addition(int Summand1, int Summand2)
    {
        int Summe;
        Summe=Summand1+Summand2;
        return Summe;
    }
    
    int Subtraktion(int Subtrahend1, int Subtrahend2)
    {
        int Differenz;
        Differenz=Subtrahend1-Subtrahend2;
        return Differenz;
    }
    
    int Multiplikation(int Multiplikator1, int Multiplikator2)
    {
        int Faktor;
        Faktor=Multiplikator1*Multiplikator2;
        return Faktor;
    }
    
    int Division(int Dividend1, int Dividend2)
    {
        int Quotient;
        Quotient=Dividend1/Dividend2;
        return Quotient;
    }
    

    Es gibt zwar keine Fehlermeldung, aber ich gebe die Zahlen plus den Operator ein, das Ergebnis stimmt jedoch in keinster Weise.
    Weiß einer wieso???

    lg

    Michael



  • Mit dem Datentyp double funktioniert es plötzlich...


  • Mod

    In Zeile 17 liest du eine Zeichenkette in ein einzelnes Zeichen ein. Nimm den Formatstring " %c" (mit Leerzeichen!)

    Mit dem Datentyp double funktioniert es plötzlich...

    Du meinst aber nicht, dass 3/4==0, oder? Das ist beim Rechnen mit Ganzzahlen kein Fehler, sondern ein Feature.


Anmelden zum Antworten