usaa21/cv3/program.c
2021-10-20 10:39:00 +02:00

65 lines
1.6 KiB
C

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define LINESIZE 100
struct kalkulacka{
float cislo; };
int main() {
struct kalkulacka number[LINESIZE];
memset(number, 0, sizeof(struct kalkulacka) * LINESIZE);
char line[LINESIZE];
size_t velkost;
memset(line, 0, LINESIZE);
int a = 0;
int i;
int input = 0;
float p;
//float prvy, druhy, vys;
while (fgets(line, LINESIZE, stdin)) {
velkost = strlen(line);
if (velkost == 1 && line[velkost - 1] == '\n') {
printf("no input\n");
break;
}
if (input >= 4){
printf("no input\n");
break;
}
if (line[0] == '+' || line[0] == '-' || line[0] == '*' || line[0] == '/') {
input =+ 2;
if (line[0] == '+') {
number[a - 2].cislo = number[a - 2].cislo + number[a - 1].cislo;
a--;
}
if (line[0] == '-') {
number[a - 2].cislo = number[a - 2].cislo - number[a - 1].cislo;
a--;
}
if (line[0] == '*') {
number[a - 2].cislo = number[a - 2].cislo * number[a - 1].cislo;
a--;
}
if (line[0] == '/') {
number[a - 2].cislo = number[a - 2].cislo / number[a - 1].cislo;
a--;
}
}
else {
p = atof(line);
number[a].cislo = p;
a++;
input++;
}
for (i = 0; i < a; i++){
printf("%.2f ", number[i].cislo);
}
printf("\n");
}
return 0;
}