HTMLify

calculator.c
Views: 1 | Author: abh
#include <stdio.h>

typedef struct {
    int (*add)(int, int);
    int (*sub)(int, int);
    int (*div)(int, int);
    int (*mul)(int, int);
} Calculator;

int add(int lo, int ro) {
    return lo + ro;
}

int sub(int lo, int ro) {
    return lo - ro;
}

int div(int lo, int ro) {
    return lo / ro;
}

int mul(int lo, int ro) {
    return lo * ro;
}

Calculator Calculator_init() {
    Calculator calculator;
    calculator.add = &add;
    calculator.sub = &sub;
    calculator.div = &div;
    calculator.mul = &mul;
    return calculator;
}

int main() {
    int lo, ro, result;
    char op;
    Calculator calc = Calculator_init();
    while (0x1) {
        printf(">> ");
        scanf("%d %c %d", &lo, &op, &ro);
        switch (op) {
            case '+':
                result = calc.add(lo, ro);
                break;
            case '-':
                result = calc.sub(lo, ro);
                break;
            case '/':
                result = calc.div(lo, ro);
                break;
            case '*':
                result = calc.mul(lo, ro);
                break;
            default:
                result = 0;
        }
        printf("=> %d\n", result);
    }
}

Comments