From 3ebe667b44aa66f2a59c6c6c74f2450554bcfbc5 Mon Sep 17 00:00:00 2001 From: Lucas Date: Thu, 9 Apr 2026 15:54:30 +0200 Subject: [PATCH] calculator.c --- functional_market/Fundamentals/calculator.c | 31 ++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/functional_market/Fundamentals/calculator.c b/functional_market/Fundamentals/calculator.c index da76ea2..60a3dfe 100644 --- a/functional_market/Fundamentals/calculator.c +++ b/functional_market/Fundamentals/calculator.c @@ -1,9 +1,32 @@ #include "calculator.h" +int add(int a, int b){ return a + b;} +int sub(int a, int b){ return a - b;} +int mul(int a, int b){return a * b;} +int div(int a, int b){return a / b;} +int mod(int a, int b){return a % b;} + + int calculator(int a, int b, enum operation op) { - (void)a; - (void)b; - (void)op; - return 0; + const operator lookup_table_name[] = { + + [ADD] = &add, + [SUB] = &sub, + [MUL] = &mul, + [DIV] = &div, + [MOD] = &mod, + }; + + return lookup_table_name[op](a, b); } +/* +#include +int main(void) +{ + int a = 144; + int b = 10; + enum operation op = MOD; + printf("calculator(%d, %d, %d) = %d\n", a, b, op, calculator(a, b, op)); +} +*/