du3
This commit is contained in:
parent
b091383369
commit
6687cc8460
30
du3/program.c
Normal file
30
du3/program.c
Normal file
@ -0,0 +1,30 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#define MAX_LEN 100
|
||||
|
||||
const char* evaluate_expression(char *expression){
|
||||
double num1, num2, result, computed_result;
|
||||
char op;
|
||||
|
||||
if(sscanf(expression, " %lf %c %lf = %lf ", &num1, &op, &num2, &result) != 4) return "CHYBA";
|
||||
|
||||
switch(op){
|
||||
case '+': computed_result = num1 + num2; break;
|
||||
case '-': computed_result = num1 - num2; break;
|
||||
case '*': computed_result = num1 * num2; break;
|
||||
case '/': if (num2 == 0) return "CHYBA"; computed_result = num1 / num2; break;
|
||||
default: return "CHYBA";
|
||||
}
|
||||
|
||||
return (round(computed_result * 100) / 100 == round(result * 100) / 100) ? "OK" : "ZLE";
|
||||
}
|
||||
|
||||
int main(){
|
||||
char line[MAX_LEN];
|
||||
while(fgets(line, sizeof(line), stdin) && line[0] != '\n'){
|
||||
printf("%s\n", evaluate_expression(line));
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user