#include #include #include #include #include int main() { char line[100]; double num1, num2, result, expected_result; char op; while (fgets(line, sizeof(line), stdin) != NULL) { if (line[0] == '\n') { // Stop when the user enters a blank line break; } num1 = num2 = result = expected_result = 0; op = '\0'; // Remove any spaces between symbols for (int i = 0; line[i] != '\0'; i++) { if (isspace(line[i])) { for (int j = i; line[j] != '\0'; j++) { line[j] = line[j + 1]; } i--; // Move back one step to recheck the current character } } // Parse the line if (sscanf(line, "%lf%c%lf=%lf", &num1, &op, &num2, &expected_result) != 4) { printf("CHYBA\n"); continue; } // Check if the input is valid if (op != '+' && op != '-' && op != '*' && op != '/') { printf("CHYBA\n"); continue; } // Check for division by zero if (op == '/' && num2 == 0) { printf("ZLE\n"); continue; } // Perform the calculation switch (op) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': if (num2 == 0) { printf("CHYBA\n"); continue; } result = num1 / num2; break; } // Round both result and expected_result to two decimal places result = round(result * 100.0) / 100.0; expected_result = round(expected_result * 100.0) / 100.0; // Check if the result is correct if (result == expected_result) { printf("OK\n"); } else { printf("ZLE\n"); } } return 0; }