PVJC25/du3/program.c

66 lines
1.6 KiB
C

#include <stdio.h>
#include <string.h>
#include <math.h>
#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 (input == NULL || strlen(input) == 0 || strspn(input, " \t\n") == strlen(input)) {
return 0;
}
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 -1;
} else { resultat = number1 / number2;
}
break;
default:
return 0;
}
}
resultat = round(resultat * 100)/100;
if (resultat-givenResult ==0 ) {
return 1;
} else { return -1;
}
}