diff --git a/du4/program.c b/du4/program.c index 97f1d46..a803652 100644 --- a/du4/program.c +++ b/du4/program.c @@ -1,19 +1,86 @@ #include #include #include -int main(){ -float value = 0; -char znaky[13] = "1.1 2.2 3.3"; -char* koniec_pola = znaky + strlen(znaky); -char* koniec_cisla = NULL; -char* zaciatok_cisla = znaky; -while (zaciatok_cisla < koniec_pola){ - value = strtof(zaciatok_cisla,&koniec_cisla); - if (value == 0){ - break; +#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; + 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] == '+' || znaky[i] == '=') { + 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; + } + } } - printf("Nasiel som cislo %f\n",value); - zaciatok_cisla = koniec_cisla + 1; -} -return 0; + if(symbol[sym - 2] == '+'){ + sr = a + b; + //printf("%2.f", sr); + } + if(symbol[sym - 2] == '-'){ + sr = a - b; + //printf("%2.f", sr); + } + if(symbol[sym - 2] == '*'){ + sr = a * b; + //printf("%2.f", sr); + } + if(symbol[sym - 2] == '/'){ + sr = a / b; + //printf("%2.f", sr); + } + if(c == sr){ + printf("OK\n"); + } + else{ + printf("CHYBA\n"); + } + if (feof(stdin)) { + printf("Dostal som sa na koniec suboru\n"); + } + + return 0; } + + + +