#include #include #include #include #include #include #define LINE_SIZE 150 int main() { char znaky[LINE_SIZE]; char* r = NULL; int symbol[LINE_SIZE]; int sym = 0; char* koniec_cisla = NULL; char* zaciatok_cisla = znaky; //char* koniec_pola; float cislo = 0.0; float a = 0; float b = 0; float c = 0; int counter = 0; float sr= 0; int p = 0; while ((r = fgets(znaky, LINE_SIZE, stdin)) != NULL) { if(znaky[0] == '\n'){ break; } for (int i = 0; i < strlen(znaky); i++) { if (znaky[i] == '*' || znaky[i] == '/' || znaky[i] == '+' || znaky[i] == '=') { symbol[sym] = znaky[i]; znaky[i] = ' '; sym++; } if(znaky[i] == '-'){ if(znaky[i - 1] == ' ' && znaky[i + 1] == ' '){ symbol[sym] = znaky[i]; znaky[i] = ' '; sym++; } } } zaciatok_cisla = znaky; while (*zaciatok_cisla != '\0') { cislo = strtof(zaciatok_cisla, &koniec_cisla); if (zaciatok_cisla == koniec_cisla) { zaciatok_cisla++; } else { if(counter == 0){ a = cislo; } if(counter == 1){ b = cislo; } if(counter == 2){ c = cislo; } counter++; //printf("Nasiel som cislo %f\n", cislo); zaciatok_cisla = koniec_cisla + 1; } } counter = 0; for(int j = 0; j < sym; j++){ if(symbol[j] == '=') p = j; } printf("%d", sym); if(sym == 1){ //printf("a--->>%f\n", a); //printf("b--->>%f\n", b); b = b * -1; sr = a - b; //printf("%f", sr); } else{ if(symbol[p - 1] == '+'){ sr = a + b; //printf("%2.f", sr); } if(symbol[p - 1] == '-'){ sr = a - b; //printf("%2.f", sr); } if(symbol[p - 1] == '*'){ sr = a * b; //printf("%2.f", sr); } if(symbol[p - 1] == '/'){ sr = a / b; //printf("%2.f", sr); } } sr = roundf(sr * 100) / 100; if(c == sr){ printf("OK\n"); } else{ printf("ZLE\n"); } sym = 0; } if (feof(stdin)) { //printf("Dostal som sa na koniec suboru\n"); } return 0; }