#include #include #include #include #include #define SIZE 100 bool checkZnaka(char znaky[],char znak1){ for(int i = 0;i < 4;i++){ if(znaky[i] == znak1){ return false; } } return true; } struct vzorec{ double x; double y; double result; char znak1; char znak2; }; int main(){ char line[SIZE]; char znaky[] = "+-*/"; memset(line,0,SIZE); struct vzorec funkcia[SIZE]; memset(funkcia,0,SIZE); char* pEnd; while (fgets(line,SIZE,stdin) && line[0] != '\n'){ if(line == NULL){ break; } int n = sscanf(line, "%lf %c %lf %c %lf", &funkcia->x, &funkcia->znak1, &funkcia->y, &funkcia->znak2, &funkcia->result); if(checkZnaka(znaky, funkcia->znak1) == true || funkcia->znak2 != '='){ printf("CHYBA\n"); return 0; } double r1 = (round(funkcia->x*10) + round(funkcia->y*10))/10; double r2 = (round(funkcia->x*10) - round(funkcia->y*10))/10; double r3 = (round(funkcia->x*10) * round(funkcia->y))/10; double r4 = (round(funkcia->x*10) / round(funkcia->y))/10; if(funkcia->result != r1 && funkcia->result != r2 && funkcia->result != r3 && funkcia->result != r4){ printf("ZLE\n"); return 0; } else{ printf("OK\n"); return 0; } printf("x: %d, znak1: %c, y: %d, znak2: %c, result: %d\n", funkcia->x, funkcia->znak1, funkcia->y, funkcia->znak2, funkcia->result); } return 0; }