#include #include #include #include int main() { char line[300]; int count = 0; while (fgets(line, sizeof(line), stdin)) { count++; char *start = line, *end = NULL; int has_operator = 0; float num1 = 0, num2 = 0, expected_result = 0; char op, *next; while (*start != '\n') { if (*start == '+' || *start == '-' || *start == '*' || *start == '/') { if (has_operator) { printf("CHYBA\n"); goto next_line; } has_operator = 1; op = *start; } else if ((*start < '0' || *start > '9') && *start != ' ' && *start != '=' && *start != '.') { printf("CHYBA\n"); goto next_line; } start++; } if (!has_operator) { printf("CHYBA\n"); goto next_line; } num1 = strtof(line, &next); while (*next == ' ') next++; if (*next != op) { printf("KONIEC\n"); goto next_line; } next++; num2 = strtof(next, &next); while (*next == ' ') next++; if (*next == '=') { next++; expected_result = strtof(next, &next); while (*next == ' ') next++; } else { goto next_line; } float result; switch (op) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; } result = roundf(result * 100) / 100; if (fabs(result - expected_result) < 0.001) { printf("OK\n"); } else { printf("ZLE\n"); } next_line: continue; } return EXIT_SUCCESS; }