#include #include #include #include #define BUFFER_SIZE 100 // Funkcia na vyhodnotenie výrazu char* evaluate_expression(char* expression) { double num1, num2, expected_result, result; char operator; // Načítanie čísel a operátora zo vstupného reťazca if (sscanf(expression, "%lf %c %lf = %lf", &num1, &operator, &num2, &expected_result) != 4) { return "CHYBA"; } // Kontrola delenia nulou if (operator == '/' && num2 == 0) { return "ZLE"; } // Vykonanie operácie a porovnanie s očakávaným výsledkom switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; default: return "CHYBA"; } // Porovnanie výsledku so skutočným výsledkom s presnosťou na dve desatinné miesta if (fabs(result - expected_result) < 0.01) { return "OK"; } else { return "ZLE"; } } int main() { char buffer[BUFFER_SIZE]; // Načítanie vstupných úloh a ich vyhodnotenie while (fgets(buffer, BUFFER_SIZE, stdin)) { // Odstránenie znaku nového riadku buffer[strcspn(buffer, "\n")] = '\0'; // Ukončenie načítavania, ak je riadok prázdny if (strlen(buffer) == 0) { break; } printf("%s\n", evaluate_expression(buffer)); } return 0; }