zmeny
This commit is contained in:
parent
cd157124c5
commit
41e98613c8
@ -2,51 +2,56 @@
|
||||
#include <stdbool.h>
|
||||
#include <math.h>
|
||||
|
||||
// Funkcia kontroluje, či zadaný znak je operátor (+, -, *, /)
|
||||
bool is_operation(char op) {
|
||||
return op == '+' || op == '-' || op == '*' || op == '/';
|
||||
}
|
||||
|
||||
int main() {
|
||||
char line[100];
|
||||
char line[100]; // Pole na uloženie vstupného riadku
|
||||
|
||||
|
||||
while(true) {
|
||||
while(true) { // Nekonečný cyklus na spracovanie vstupu
|
||||
// Načítame vstupný riadok (ak je NULL alebo prázdny, ukončíme cyklus)
|
||||
if(fgets(line, sizeof(line), stdin) == NULL || line[0] == '\n') {
|
||||
break;
|
||||
}
|
||||
double firstNumber = 0;
|
||||
double secondNumber = 0;
|
||||
double ans = 0;
|
||||
char op;
|
||||
if(sscanf(line, "%lf %c %lf = %lf", &firstNumber, &op, &secondNumber, &ans) != 4 || !is_operation(op)) {
|
||||
|
||||
float firstNumber = 0; // Premenná na prvé číslo
|
||||
float secondNumber = 0; // Premenná na druhé číslo
|
||||
float ans = 0; // Očakávaný výsledok
|
||||
char op; // Znak operácie
|
||||
|
||||
// Parsujeme vstup vo formáte: číslo1 operátor číslo2 = očakávaný_výsledok
|
||||
if(sscanf(line, "%f %c %f = %f", &firstNumber, &op, &secondNumber, &ans) != 4 || !is_operation(op)) {
|
||||
printf("CHYBA\n");
|
||||
continue;
|
||||
continue;
|
||||
}
|
||||
|
||||
double result = 0;
|
||||
float result = 0; // Premenná na uloženie výsledku operácie
|
||||
|
||||
// Vykonáme výpočet podľa operátora
|
||||
if(op == '+') {
|
||||
result = firstNumber + secondNumber;
|
||||
result = firstNumber + secondNumber; // Sčítanie
|
||||
} else if(op == '-') {
|
||||
result = firstNumber - secondNumber;
|
||||
result = firstNumber - secondNumber; // Odčítanie
|
||||
} else if(op == '*') {
|
||||
result = firstNumber * secondNumber;
|
||||
result = firstNumber * secondNumber; // Násobenie
|
||||
} else {
|
||||
if(secondNumber != 0) {
|
||||
result = firstNumber / secondNumber;
|
||||
if(secondNumber != 0) { // Kontrola delenia nulou
|
||||
result = firstNumber / secondNumber; // Delenie
|
||||
}
|
||||
}
|
||||
|
||||
result = roundf(result * 100) / 100;
|
||||
// Zaokrúhlenie výsledku na dve desatinné miesta
|
||||
result = roundf(result * 100) / 100;
|
||||
|
||||
// Skontrolujeme, či sa vypočítaný výsledok zhoduje s očakávaným
|
||||
if (ans == result) {
|
||||
printf("OK\n");
|
||||
printf("OK\n"); // Ak sa zhoduje, vypíšeme "OK"
|
||||
} else {
|
||||
printf("ZLE\n");
|
||||
printf("ZLE\n"); // Ak nie, vypíšeme "ZLE"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0; // Ukončenie programu
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user