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