From 6687cc8460ee44de06f5551b19ea403d1b94a700 Mon Sep 17 00:00:00 2001 From: Roman Khaliavka Date: Thu, 13 Mar 2025 12:48:16 +0000 Subject: [PATCH] du3 --- du3/program.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 du3/program.c diff --git a/du3/program.c b/du3/program.c new file mode 100644 index 0000000..a7f0554 --- /dev/null +++ b/du3/program.c @@ -0,0 +1,30 @@ +#include +#include +#include + +#define MAX_LEN 100 + +const char* evaluate_expression(char *expression){ + double num1, num2, result, computed_result; + char op; + + if(sscanf(expression, " %lf %c %lf = %lf ", &num1, &op, &num2, &result) != 4) return "CHYBA"; + + switch(op){ + case '+': computed_result = num1 + num2; break; + case '-': computed_result = num1 - num2; break; + case '*': computed_result = num1 * num2; break; + case '/': if (num2 == 0) return "CHYBA"; computed_result = num1 / num2; break; + default: return "CHYBA"; + } + + return (round(computed_result * 100) / 100 == round(result * 100) / 100) ? "OK" : "ZLE"; +} + +int main(){ + char line[MAX_LEN]; + while(fgets(line, sizeof(line), stdin) && line[0] != '\n'){ + printf("%s\n", evaluate_expression(line)); + } + return 0; +}