From 9b61b53bdfbb1c174fe6c63f6667001ab816efee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vl=C4=8Dek?= Date: Thu, 19 Mar 2026 21:57:06 +0000 Subject: [PATCH] fixed formatting in code, tweaked sscanf() call --- du3/program.c | 128 +++++++++++++++++++++++++------------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/du3/program.c b/du3/program.c index 1a7deac..5600614 100644 --- a/du3/program.c +++ b/du3/program.c @@ -51,93 +51,93 @@ int main() //pomocne premeny char line[SIZE], strBuffer[SIZE]; line[0] = '\0'; - strBuffer[0] = '\0'; char* strtofEndPtr; int LinesOnInputCount = 0; while (fgets(line, SIZE, stdin) != NULL) { - (sscanf(line, "%127[^\n]", strBuffer); - if (strBuffer[0] == '\0') + strBuffer[0] = '\0'; + sscanf(line, "%127[^\n]", strBuffer); + if (strBuffer[0] == '\0') + { + printf("CHYBA\n"); + continue; + } + bool isLineInvalid = false; + //docasne 'char' premeny + char num1Temp[TEMPBUFFERSIZE], num2Temp[TEMPBUFFERSIZE], resultTemp[TEMPBUFFERSIZE]; + num1Temp[0] = '\0'; + num2Temp[0] = '\0'; + resultTemp[0] = '\0'; + bool foundEqualSign = false; + char op1 = 'N'; //N = 'None/NIC' + + for (int i = 0; strBuffer[i] != '\0'; i++) + { + bool isNegativeSign = false; + if (isspace(strBuffer[i]) != 0) { - printf("CHYBA\n"); continue; } - bool isLineInvalid = false; - //docasne 'char' premeny - char num1Temp[TEMPBUFFERSIZE], num2Temp[TEMPBUFFERSIZE], resultTemp[TEMPBUFFERSIZE]; - num1Temp[0] = '\0'; - num2Temp[0] = '\0'; - resultTemp[0] = '\0'; - bool foundEqualSign = false; - char op1 = 'N'; //N = 'None/NIC' - - for (int i = 0; strBuffer[i] != '\0'; i++) + if (strBuffer[i] == '-') { - bool isNegativeSign = false; - if (isspace(strBuffer[i]) != 0) + //kontrola - zistenie, ze ci znak '-' symbolizuje zapornu hodnotu (-456) alebo arit. operaciu minus + //zistujeme to na zaklade toho, kde sme v riadku (ak sme na zaciatku num1, num2 alebo vyslednehoCisla, tak sa jedna o minusove znamienko) + if (op1 == 'N' && strlen(num1Temp) == 0) { - continue; + isNegativeSign = true; } - if (strBuffer[i] == '-') + else if (op1 != 'N' && !foundEqualSign && strlen(num2Temp) == 0) { - //kontrola - zistenie, ze ci znak '-' symbolizuje zapornu hodnotu (-456) alebo arit. operaciu minus - //zistujeme to na zaklade toho, kde sme v riadku (ak sme na zaciatku num1, num2 alebo vyslednehoCisla, tak sa jedna o minusove znamienko) - if (op1 == 'N' && strlen(num1Temp) == 0) - { - isNegativeSign = true; - } - else if (op1 != 'N' && !foundEqualSign && strlen(num2Temp) == 0) - { - isNegativeSign = true; - } - else if (foundEqualSign && strlen(resultTemp) == 0) - { - isNegativeSign = true; - } + isNegativeSign = true; } - if (isdigit(strBuffer[i]) != 0 || strBuffer[i] == '.' || isNegativeSign) + else if (foundEqualSign && strlen(resultTemp) == 0) { - //cislo sa bude zapisovat podla toho, kde sme pri citani riadku... - //ak nenasiel ani arit. znamienko = cislo patri ku prvemu operandu (num1) - //ak nasiel arit. znamienko ale NIE este symbol '=', tak cislo patri ku druhemu operandu (num2) - //inak ak ma vsetko, tak zvysne nacitane cisla z riadku mozu byt vyluc. metodou len sucastou vysledku - if (op1 == 'N') - { - strncat(num1Temp, &strBuffer[i], 1); - } - else if (!foundEqualSign) - { - strncat(num2Temp, &strBuffer[i], 1); - } - else - { - strncat(resultTemp, &strBuffer[i], 1); - } + isNegativeSign = true; } - else if (strBuffer[i] == '=') + } + if (isdigit(strBuffer[i]) != 0 || strBuffer[i] == '.' || isNegativeSign) + { + //cislo sa bude zapisovat podla toho, kde sme pri citani riadku... + //ak nenasiel ani arit. znamienko = cislo patri ku prvemu operandu (num1) + //ak nasiel arit. znamienko ale NIE este symbol '=', tak cislo patri ku druhemu operandu (num2) + //inak ak ma vsetko, tak zvysne nacitane cisla z riadku mozu byt vyluc. metodou len sucastou vysledku + if (op1 == 'N') { - foundEqualSign = true; - continue; + strncat(num1Temp, &strBuffer[i], 1); } - - else if (strBuffer[i] == '+' || strBuffer[i] == '-' || strBuffer[i] == '/' || strBuffer[i] == '*') + else if (!foundEqualSign) { - //predbezna kontrola, ak uz operator mame tak vyhod chybu pri druhom pokuse o nacitanie - //taktiez, ak sa nasiel minusovy znak tu tak to moze byt len arit. znamienko - if (op1 != 'N') - { - isLineInvalid = true; - } - op1 = strBuffer[i]; + strncat(num2Temp, &strBuffer[i], 1); } else { - isLineInvalid = true; - break; + strncat(resultTemp, &strBuffer[i], 1); } + } + else if (strBuffer[i] == '=') + { + foundEqualSign = true; + continue; + } + + else if (strBuffer[i] == '+' || strBuffer[i] == '-' || strBuffer[i] == '/' || strBuffer[i] == '*') + { + //predbezna kontrola, ak uz operator mame tak vyhod chybu pri druhom pokuse o nacitanie + //taktiez, ak sa nasiel minusovy znak tu tak to moze byt len arit. znamienko + if (op1 != 'N') + { + isLineInvalid = true; + } + op1 = strBuffer[i]; + } + else + { + isLineInvalid = true; + break; + } - } + } float num1 = strtof(num1Temp, &strtofEndPtr); float num2 = strtof(num2Temp, &strtofEndPtr);