From 95212f7acdef19b2c301222f8fba657340f71f82 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Thu, 1 Apr 2021 13:38:09 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20'du4/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ^^ --- du4/program.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/du4/program.c b/du4/program.c index 8992694..8679b8e 100644 --- a/du4/program.c +++ b/du4/program.c @@ -4,33 +4,32 @@ #include #include -int main(){ - char* input = (char*) calloc (100, sizeof(char)); +int main() { + char* input = (char*) calloc(100, sizeof(char)); char symbol; int counter; int operation; - char* number1 = (char*) calloc (25, sizeof(char)); - char* number2 = (char*) calloc (25, sizeof(char)); - char* result = (char*) calloc (30, sizeof(char)); + char* number1 = (char*) calloc(25, sizeof(char)); + char* number2 = (char*) calloc(25, sizeof(char)); + char* result = (char*) calloc(30, sizeof(char)); char* ptr; bool equals = false; for(int i = 0; fgets(input, 100, stdin) != NULL; i++){ - if(!input || !strcmp(input, "") || input[0] == EOF || input[0] == '\n' || input[0] == '\0') + if(!input || !strcmp(input, "") || input[0] == EOF || input[0] == '\n' || input[0] == '\0') break; counter = 0; operation = 0; equals = false; memset(number1, '\0', 25); memset(number2, '\0', 25); - - while (input[counter] != '\0' && input[counter] != '\n'){ + while(input[counter] != '\0' && input[counter] != '\n'){ symbol = input[counter++]; - while(isspace(symbol)) + while (isspace(symbol)) symbol = input[counter++]; if(symbol == '\0' || symbol == '\n') break; - switch(symbol){ + switch (symbol) { case '+': operation = 1; break; @@ -47,19 +46,19 @@ int main(){ equals = true; break; default: - if(isdigit(symbol) || symbol == '.'){ - if(operation == 0) + if (isdigit(symbol) || symbol == '.'){ + if (operation == 0) number1 += symbol; - else if (!equals) + else if(!equals) number2 += symbol; else result += symbol; } - else { - printf("CHYBA"); + else{ + printf("CHYBA\n"); goto LABEL; } - break; + break; } } LABEL: @@ -68,18 +67,18 @@ int main(){ printf("%s\n", (strtof(number1, &ptr) + strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) + strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); break; case 2: - printf("%s\n", (strtof(number1, &ptr) + strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) - strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); + printf("%s\n", (strtof(number1, &ptr) - strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) - strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); break; case 3: - printf("%s\n", (strtof(number1, &ptr) + strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) * strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); + printf("%s\n", (strtof(number1, &ptr) * strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) * strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); break; case 4: - printf("%s\n", (strtof(number1, &ptr) + strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) / strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); + printf("%s\n", (strtof(number1, &ptr) / strtof(number2, &ptr) > strtof(result, &ptr) - 0.001 && strtof(number1, &ptr) / strtof(number2, &ptr) < strtof(result, &ptr) + 0.001) ? "OK" : "ZLE"); break; default: - printf("CHYBA"); + printf("CHYBA\n"); } } return 0; -} +} \ No newline at end of file