Изменил(а) на 'du4/program.c'

This commit is contained in:
Vladyslav Korzun 2023-03-08 12:20:16 +00:00
parent 969c1a7db7
commit 076cc13cc3

View File

@ -1,19 +1,86 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
int main(){ #include <assert.h>
float value = 0; #include <math.h>
char znaky[13] = "1.1 2.2 3.3"; #include <ctype.h>
char* koniec_pola = znaky + strlen(znaky); #define LINE_SIZE 150
char* koniec_cisla = NULL;
char* zaciatok_cisla = znaky; int main() {
while (zaciatok_cisla < koniec_pola){ char znaky[LINE_SIZE];
value = strtof(zaciatok_cisla,&koniec_cisla); char* r = NULL;
if (value == 0){ int symbol[LINE_SIZE];
break; 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;
}
}
} }
printf("Nasiel som cislo %f\n",value); if(symbol[sym - 2] == '+'){
zaciatok_cisla = koniec_cisla + 1; sr = a + b;
} //printf("%2.f", sr);
return 0; }
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;
} }