Implement Add, Subtract, Multiply and Divide Functionality
parent
de8ce1cd43
commit
dccfd530b5
@ -0,0 +1,67 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "utility.h"
|
||||||
|
|
||||||
|
const char operators[] = {'+', '-', '*', '/'};
|
||||||
|
|
||||||
|
char enumToString(MathOperator mathOperator) {
|
||||||
|
return operators[mathOperator];
|
||||||
|
}
|
||||||
|
|
||||||
|
void println(double firstOperand, MathOperator mathOperator, double secondOperand, double result) {
|
||||||
|
printf("%0.2lf %c %0.2lf = %0.2lf\n\n", firstOperand, enumToString(mathOperator), secondOperand, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
double doOperation(double firstOperand, double secondOperand, MathOperator mathOperator) {
|
||||||
|
double result = 0.0;
|
||||||
|
|
||||||
|
switch (mathOperator) {
|
||||||
|
case ADD:
|
||||||
|
result = firstOperand + secondOperand;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SUBTRACT:
|
||||||
|
result = firstOperand - secondOperand;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MULTIPLY:
|
||||||
|
result = firstOperand * secondOperand;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DIVIDE:
|
||||||
|
result = firstOperand / secondOperand;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
printf("Sorry don't recognise the given operator!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void getOperands(double *firstOperand, double *secondOperand) {
|
||||||
|
printf("Enter First Operand: ");
|
||||||
|
scanf("%lf", firstOperand);
|
||||||
|
printf("Enter Second Operand: ");
|
||||||
|
scanf("%lf", secondOperand);
|
||||||
|
}
|
||||||
|
|
||||||
|
void add(double firstOperand, double secondOperand) {
|
||||||
|
double result = doOperation(firstOperand, secondOperand, ADD);
|
||||||
|
println(firstOperand, ADD, secondOperand, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
void subtract(double firstOperand, double secondOperand) {
|
||||||
|
double result = doOperation(firstOperand, secondOperand, SUBTRACT);
|
||||||
|
println(firstOperand, SUBTRACT, secondOperand, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
void multiply(double firstOperand, double secondOperand) {
|
||||||
|
double result = doOperation(firstOperand, secondOperand, MULTIPLY);
|
||||||
|
println(firstOperand, MULTIPLY, secondOperand, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
void divide(double firstOperand, double secondOperand) {
|
||||||
|
double result = doOperation(firstOperand, secondOperand, DIVIDE);
|
||||||
|
println(firstOperand, DIVIDE, secondOperand, result);
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
typedef enum {
|
||||||
|
ADD,
|
||||||
|
SUBTRACT,
|
||||||
|
MULTIPLY,
|
||||||
|
DIVIDE
|
||||||
|
} MathOperator;
|
||||||
|
|
||||||
|
extern const char operators[];
|
||||||
|
|
||||||
|
void add(double firstOperand, double secondOperand);
|
||||||
|
void subtract(double firstOperand, double secondOperand);
|
||||||
|
void multiply(double firstOperand, double secondOperand);
|
||||||
|
void divide(double firstOperand, double secondOperand);
|
||||||
|
void getOperands(double *firstOperand, double *secondOperand);
|
Loading…
Reference in New Issue