#include #include #include #include #include #define TOLERANCE 0.01 float zaokruhli(float cislo){ return roundf(cislo * 100) / 100; } int main(){ char riadok[100]; while (fgets(riadok, sizeof(riadok), stdin)){ riadok[strcspn(riadok, "\n")] = 0; if (strlen(riadok) == 0){ break; } char *ptr = riadok; while (*ptr == ' ') ptr++; char *endptr; float cislo1 = strtof(ptr, &endptr); if (ptr == endptr){ printf("CHYBA\n"); continue; } ptr = endptr; while (*ptr == ' ') ptr++; char operacia = *ptr; if (operacia != '+' && operacia != '-' && operacia != '*' && operacia != '/') { printf("CHYBA\n"); continue; } ptr++; while (*ptr == ' ') ptr++; float cislo2 = strtof(ptr, &endptr); if (ptr == endptr){ printf("CHYBA\n"); continue; } ptr = endptr; while (*ptr == ' ') ptr++; if (*ptr != '='){ printf("CHYBA\n"); continue; } ptr++; while (*ptr == ' ') ptr++; float zadany_vysledok = strtof(ptr, &endptr); if (ptr == endptr || *endptr != '\0'){ printf("CHYBA\n"); continue; } float skutocny_vysledok = 0; int chyba = 0; switch(operacia){ case '+': skutocny_vysledok = cislo1 + cislo2; break; case '-': skutocny_vysledok = cislo1 - cislo2; break; case '*': skutocny_vysledok = cislo1 * cislo2; break; case '/': if (cislo2 == 0) { chyba = 1; } else { skutocny_vysledok = cislo1 / cislo2; } break; default: chyba = 1; } if (chyba){ printf("CHYBA\n"); continue; } if (fabs(zaokruhli(skutocny_vysledok) - zaokruhli(zadany_vysledok)) < TOLERANCE) { printf("OK\n"); } else { printf("ZLE\n"); } } return 0; }