Update 'du4/program.c'

This commit is contained in:
Anzhelika Nikolaieva 2023-03-20 19:42:25 +00:00
parent 1ccac5859b
commit acd1c4a809

View File

@ -7,11 +7,11 @@ int main() {
char priklad[300]; char priklad[300];
int count = 0; int count = 0;
// Read input line by line // Čítanie vstupu riadok po riadku
while (fgets(priklad, sizeof(priklad), stdin) != NULL) { while (fgets(priklad, sizeof(priklad), stdin) != NULL) {
count++; count++;
// Parse expression and evaluate it // Analyzujem výraz a vyhodnoťte ho
char *start = priklad; char *start = priklad;
char *end = NULL; char *end = NULL;
int valid = 1; int valid = 1;
@ -22,21 +22,21 @@ int main() {
} }
start = end; start = end;
// Find the operation symbol // Nájdem symbol operácie
char op = *start; char op = *start;
if (op != '+' && op != '-' && op != '*' && op != '/') { if (op != '+' && op != '-' && op != '*' && op != '/') {
valid = 0; valid = 0;
} }
start++; start++;
// Parse second number // Analýza druhého čísla
float num2 = strtof(start, &end); float num2 = strtof(start, &end);
if (end == start) { if (end == start) {
valid = 0; valid = 0;
} }
start = end; start = end;
// Check for extra characters // Skontrolujme prítomnosť ďalších znakov
while (*start != '\0') { while (*start != '\0') {
if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') {
valid = 0; valid = 0;
@ -64,12 +64,12 @@ int main() {
} }
} }
// Round result and compare to expected value // Výsledok zaokrúhlim a porovnajte s očakávanou hodnotou
float expected; float expected;
if (sscanf(start, "%f", &expected) != 1) { if (sscanf(start, "%f", &expected) != 1) {
continue; continue;
} }
expected = round(expected * 100) / 100; expected = round(expected * 100) / 100; //zaokrúhľuje
if (fabs(result - expected) < 0.001) { if (fabs(result - expected) < 0.001) {
printf("OK\n"); printf("OK\n");
} else { } else {