From 076cc13cc3917360fa02bf71166531357da0e2d0 Mon Sep 17 00:00:00 2001 From: Vladyslav Korzun Date: Wed, 8 Mar 2023 12:20:16 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB(?= =?UTF-8?q?=D0=B0)=20=D0=BD=D0=B0=20'du4/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- du4/program.c | 95 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 81 insertions(+), 14 deletions(-) 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; } + + + +