diff --git a/du3/program.c b/du3/program.c index b588e5b..e6bab3c 100644 --- a/du3/program.c +++ b/du3/program.c @@ -4,59 +4,72 @@ #include #include +#define TOLERANCE 0.01 + +float zaokruhli(float cislo){ + return roundf(cislo * 100) / 100; +} int main(){ - char riadok[100]; + char riadok[100]; + while (fgets(riadok, sizeof(riadok), stdin)){ + if (riadok[0] == '\n'){ + break; + } - char *ptr = riadok; - while(*ptr == ' ')ptr++; - float cislo1 = strtof(ptr, &ptr); + char *ptr = riadok; + while (*ptr == ' ') ptr++; + float cislo1 = strtof(ptr, &ptr); - while(*ptr == ' ')ptr++; - char operacia = *ptr; - ptr++; - - while(*ptr == ' ')ptr++; - float cislo2 = strtof(ptr, &ptr); - - while(*ptr == ' ')ptr++; - if (*ptr != '='){ - printf("CHYBA\n"); - continue; - } + while (*ptr == ' ') ptr++; + char operacia = *ptr; ptr++; - while(*ptr == ' ')ptr++; + while (*ptr == ' ') ptr++; + float cislo2 = strtof(ptr, &ptr); + + while (*ptr == ' ') ptr++; + if (*ptr != '=') { + printf("CHYBA\n"); + continue; + } + ptr++; + + while (*ptr == ' ') ptr++; float zadany_vysledok = strtof(ptr, &ptr); 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 { + 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; - } + } + break; + default: chyba = 1; + } - if (chyba){ + if (chyba) { printf("CHYBA\n"); continue; - } + } - if ((skutocny_vysledok) == (zadany_vysledok)) { + if (zaokruhli(skutocny_vysledok) == zaokruhli(zadany_vysledok)){ printf("OK\n"); - } else { - printf("ZLE\n"); + } + else + { + printf("ZLE\n"); } } - return 0; + return 0; }