Simpler Taschenrechner in C

Tolle Übungsaufgabe in C: ein simpler Konsolentaschenrechner der addieren, multiplizieren, subtrahiren und divieren kann. Ausserdem soll das Programm beendet werden wenn man ‘q’ eingibt.

/***********************
 * Ein einfacher Taschenrechner
 *
 * Rainer Hihn
 */

#include 

void exit(int);

float calculate(char optr, float opr1, float opr2)
{
    float rErg = 0;

    switch(optr) {
        /**
         * addieren
         */
        case '+':
            rErg = opr1 + opr2;
            break;
        /**
         * subtrahieren
         */
        case '-':
            rErg = opr1 - opr2;
            break;
        /**
         * multiplizieren
         */
        case '*':
            rErg = opr1 * opr2;
            break;
        /**
         * dividieren
         */
        case '/':
            rErg = opr1 / opr2;
            break;
        /**
         * Wenn kein erlaubter
         * Operator eingegeben wurde
         */
        default:
            printf("Falscher Operator \n");
            exit(1);
    }

    return rErg;
}

int main(void)
{
    /**
     * Variablendeklaration
     */
    char cOptr;
    float fOpr1;
    float fOpr2;
    float fErg;

    while(1)
    {
        printf("Eingabe: Operator  Operand1  Operand2  \n");

        /**
         * Benutzereingabe Operator
         */
        printf("Bitte Eingabe Operator \n");
        scanf(" %c", &cOptr);

        /**
         * Programm wird beendet wenn
         * 'q' eingeben wird
         */
        if(cOptr == 'q')
        {
            break;
        }

        /**
         * Benutzereingabe Operand 1
         */
        printf("Bitte Eingabe Operand1: \n");
        scanf(" %f", &fOpr1);
        /**
         * Benutzereingabe Operand 2
         */
        printf("Bitte Eingabe Operand2: \n");
        scanf(" %f", &fOpr2);

        if(cOptr == '/' && fOpr2 == 0)
        {
            printf("ehm ... nein? \n");
            break;
        }

        /**
         * Ergebnis berechnen und ausgeben
         */
        fErg = calculate(cOptr, fOpr1, fOpr2);
        printf("%f %c %f = %f \n\n", fOpr1, cOptr, fOpr2, fErg);
    }

    return 0;
}

Leave a Reply