du3
This commit is contained in:
parent
4c354b4b39
commit
54fa4fcba2
52
du3/program.c
Normal file
52
du3/program.c
Normal file
@ -0,0 +1,52 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#define MAX 100
|
||||
|
||||
|
||||
int je_cislo(const char *u) {
|
||||
char *koniec;
|
||||
strtod(u, &koniec);
|
||||
return *koniec == '\0';
|
||||
}
|
||||
|
||||
int main() {
|
||||
char riadok[MAX];
|
||||
double cislo1, cislo2, vysledok, skutocny_vysledok;
|
||||
char operacia;
|
||||
|
||||
while (fgets(riadok, MAX, stdin) != NULL) {
|
||||
if (strlen(riadok) <= 1) break; //konec
|
||||
|
||||
if (sscanf(riadok, " %lf %c %lf = %lf", &cislo1, &operacia, &cislo2, &vysledok) != 4) {
|
||||
printf("CHYBA\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (operacia) {
|
||||
case '+': skutocny_vysledok = cislo1 + cislo2; break;
|
||||
case '-': skutocny_vysledok = cislo1 - cislo2; break;
|
||||
case '*': skutocny_vysledok = cislo1 * cislo2; break;
|
||||
case '/':
|
||||
if (cislo2 == 0) {
|
||||
printf("CHYBA\n");
|
||||
continue;
|
||||
}
|
||||
skutocny_vysledok = cislo1 / cislo2;
|
||||
break;
|
||||
default:
|
||||
printf("CHYBA\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (abs(skutocny_vysledok - vysledok) < 0.005) {
|
||||
printf("OK\n");
|
||||
} else {
|
||||
printf("ZLE\n");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user