#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){ skutocny_vysledok = INFINITY; } else { skutocny_vysledok = zaokruhli(cislo1 / cislo2); } break; default: chyba = 1; } if(chyba){ printf("CHYBA\n"); continue; } float zaokruhleny_skutocny = zaokruhli(skutocny_vysledok); float zaokruhleny_zadany = zaokruhli(zadany_vysledok); if(fabs(zaokruhleny_skutocny - zaokruhleny_zadany) < TOLERANCE){ printf("OK\n"); } else { printf("ZLE\n"); } } return 0; }