Update 'du4/program.c'
This commit is contained in:
parent
1ccac5859b
commit
acd1c4a809
@ -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 {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user