From 81e9bfc58a384210349d714c847f95bc0b0b5b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kl=C3=A9ger?= Date: Mon, 20 Oct 2025 17:37:51 +0200 Subject: [PATCH] ex-05: Initial solution --- exercise-05-calculator/main.c | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 exercise-05-calculator/main.c diff --git a/exercise-05-calculator/main.c b/exercise-05-calculator/main.c new file mode 100644 index 0000000..d2552bd --- /dev/null +++ b/exercise-05-calculator/main.c @@ -0,0 +1,47 @@ +#include +#include +#include +#include + +int main() { + printf("Zadejte vzorec:\n"); + + double num1, num2; + char op; + if (scanf(" %lf %c %lf = ", &num1, &op, &num2) != 3) { + printf("Nespravny vstup.\n"); + return EXIT_FAILURE; + } + + if (op != '+' && op != '-' && op != '*' && op != '/') { + printf("Nespravny vstup.\n"); + return EXIT_FAILURE; + } + + if (op == '/' && num2 == 0) { + printf("Nespravny vstup.\n"); + return EXIT_FAILURE; + } + + double result = 0; + switch (op) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + result = floor(num1 / num2); + break; + }; + + if (result > INT_MAX) { + printf("%.1e\n", result); + } else { + printf("%ld\n", (long)result); + } +}