daco dzive1234

This commit is contained in:
Denis Landa 2025-03-14 11:15:15 +01:00
parent a9f7391162
commit d0e21eae4b

View File

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