diff --git a/du3/program.c b/du3/program.c new file mode 100644 index 0000000..40802fa --- /dev/null +++ b/du3/program.c @@ -0,0 +1,59 @@ +#include +#include + +#define MAX_LENGTH 100 + +int check(char* input); + +int main() { + char input[MAX_LENGTH]; + while (fgets(input,MAX_LENGTH, stdin)) { + if (input[0] == '\n') { + break; + } + input[strcspn(input, "\n")] = '\0'; + int resultat =check(input); + if (resultat ==1) { + printf("OK\n"); + } else { + if (resultat == -1) { + printf("ZLE\n"); + } else { + printf("CHYBA\n"); + } + } + } + return 0; +} + +int check(char* input) { + double number1, number2, resultat, givenResult; + char znak; + int a=0; + a=sscanf(input, " %lf %c %lf = %lf ", &number1, &znak, &number2, &givenResult); + if (a != 4) { + return 0; + }else { + switch (znak) { + case '+': + resultat=number1+number2; + break; + case '-': + resultat=number1-number2; + break; + case '*': + resultat=number1*number2; + break; + case '/': + if (number2 == 0) { + return 0; + }else{resultat=number1/number2;} + break; + default: + } + } + if (resultat-givenResult ==0 ) { + return 1; + } else { return -1; + } + } \ No newline at end of file