ex-05: Initial solution
This commit is contained in:
parent
bdd72382c3
commit
81e9bfc58a
47
exercise-05-calculator/main.c
Normal file
47
exercise-05-calculator/main.c
Normal file
@ -0,0 +1,47 @@
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main() {
|
||||
printf("Zadejte vzorec:\n");
|
||||
|
||||
double num1, num2;
|
||||
char op;
|
||||
if (scanf(" %lf %c %lf = ", &num1, &op, &num2) != 3) {
|
||||
printf("Nespravny vstup.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (op != '+' && op != '-' && op != '*' && op != '/') {
|
||||
printf("Nespravny vstup.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (op == '/' && num2 == 0) {
|
||||
printf("Nespravny vstup.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
double result = 0;
|
||||
switch (op) {
|
||||
case '+':
|
||||
result = num1 + num2;
|
||||
break;
|
||||
case '-':
|
||||
result = num1 - num2;
|
||||
break;
|
||||
case '*':
|
||||
result = num1 * num2;
|
||||
break;
|
||||
case '/':
|
||||
result = floor(num1 / num2);
|
||||
break;
|
||||
};
|
||||
|
||||
if (result > INT_MAX) {
|
||||
printf("%.1e\n", result);
|
||||
} else {
|
||||
printf("%ld\n", (long)result);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user