100 lines
2.3 KiB
C
100 lines
2.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <ctype.h>
|
|
#include <math.h>
|
|
|
|
#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;
|
|
}
|