pvjc23/du4/program.c

87 lines
1.7 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 = 0;
int counter = 0;
float sr= 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] == '*' || znaky[i] == '/' || znaky[i] == '-' || znaky[i] == '+' || znaky[i] == '=') {
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) {
zaciatok_cisla++;
} 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;
}
}
}
if(symbol[sym - 2] == '+'){
sr = a + b;
//printf("%2.f", sr);
}
if(symbol[sym - 2] == '-'){
sr = a - b;
//printf("%2.f", sr);
}
if(symbol[sym - 2] == '*'){
sr = a * b;
//printf("%2.f", sr);
}
if(symbol[sym - 2] == '/'){
sr = a / b;
//printf("%2.f", sr);
}
if(c == sr){
printf("OK\n");
}
else{
printf("CHYBA\n");
}
if (feof(stdin)) {
//printf("Dostal som sa na koniec suboru\n");
}
return 0;
}