138 lines
2.5 KiB
C
138 lines
2.5 KiB
C
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <assert.h>
|
|
#include <math.h>
|
|
#include <ctype.h>
|
|
|
|
#define LINE_SIZE 150
|
|
|
|
int main() {
|
|
char znaky[LINE_SIZE];
|
|
char* r = NULL;
|
|
int symbol[LINE_SIZE];
|
|
int sym = 0;
|
|
char* koniec_cisla = NULL;
|
|
char* zaciatok_cisla = znaky;
|
|
//char* koniec_pola;
|
|
float cislo = 0.0;
|
|
float a = 0;
|
|
float b = 0;
|
|
float c = 1;
|
|
int counter = 0;
|
|
int counter2 = 0;
|
|
float sr= 0;
|
|
int p = 0;
|
|
int check = 0;
|
|
while ((r = fgets(znaky, LINE_SIZE, stdin)) != NULL) {
|
|
if(znaky[0] == '\n'){
|
|
break;
|
|
}
|
|
for (int i = 0; i < strlen(znaky); i++) {
|
|
if(znaky[i] == ','){
|
|
if(check != 1)
|
|
printf("CHYBA\n");
|
|
check = 1;
|
|
}
|
|
if (znaky[i] == '*' || znaky[i] == '/' || znaky[i] == '+' || znaky[i] == '=') {
|
|
symbol[sym] = znaky[i];
|
|
znaky[i] = ' ';
|
|
sym++;
|
|
}
|
|
if(znaky[i] == '-'){
|
|
counter2 = 5;
|
|
if(znaky[i - 1] == ' ' && znaky[i + 1] == ' '){
|
|
symbol[sym] = znaky[i];
|
|
znaky[i] = ' ';
|
|
sym++;
|
|
}
|
|
}
|
|
}
|
|
zaciatok_cisla = znaky;
|
|
while (*zaciatok_cisla != '\0') {
|
|
cislo = strtof(zaciatok_cisla, &koniec_cisla);
|
|
if (zaciatok_cisla == koniec_cisla) {
|
|
if(check != 1){
|
|
printf("CHYBA\n");
|
|
}
|
|
check = 1;
|
|
break;
|
|
}
|
|
else {
|
|
if(counter == 0){
|
|
a = cislo;
|
|
}
|
|
if(counter == 1){
|
|
b = cislo;
|
|
}
|
|
if(counter == 2){
|
|
c = cislo;
|
|
}
|
|
counter++;
|
|
//printf("Nasiel som cislo %f\n", cislo);
|
|
zaciatok_cisla = koniec_cisla + 1;
|
|
}
|
|
}
|
|
counter = 0;
|
|
for(int j = 0; j < sym; j++){
|
|
if(symbol[j] == '=')
|
|
p = j;
|
|
}
|
|
//printf("--->>%d", sym);
|
|
if(sym == 1){
|
|
if(counter2 == 5){
|
|
//printf("a--->>%f\n", a);
|
|
//printf("b--->>%f\n", b);
|
|
b = b * -1;
|
|
sr = a - b;
|
|
//printf("%f", sr);
|
|
}
|
|
else{
|
|
if(check != 1){
|
|
printf("CHYBA\n");
|
|
check = 1;
|
|
}
|
|
}
|
|
}
|
|
else{
|
|
if(symbol[p - 1] == '+'){
|
|
sr = a + b;
|
|
//printf("%2.f", sr);
|
|
}
|
|
if(symbol[p - 1] == '-'){
|
|
sr = a - b;
|
|
//printf("%2.f", sr);
|
|
}
|
|
if(symbol[p - 1] == '*'){
|
|
sr = a * b;
|
|
//printf("%2.f", sr);
|
|
}
|
|
if(symbol[p - 1] == '/'){
|
|
sr = a / b;
|
|
//printf("%2.f", sr);
|
|
}
|
|
}
|
|
sr = roundf(sr * 100) / 100;
|
|
if(check != 1){
|
|
if(c == sr){
|
|
printf("OK\n");
|
|
}
|
|
else{
|
|
printf("ZLE\n");
|
|
}
|
|
}
|
|
check = 0;
|
|
sym = 0;
|
|
counter = 0;
|
|
}
|
|
if (feof(stdin)) {
|
|
//printf("Dostal som sa na koniec suboru\n");
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|