The calculator should take input in following format:
[number 1] [operator] [number 2]
Example
Input
5.2 - 3
Output
2.2
Required knowledge
Basic C programming, Switch case, Operators, Functions
Logic to create calculator using switch and functions
The real power of switch case comes here. Switch case is often used to create menu driven program. Or program that accepts user choices or switches between various choices. This program does not implement any new logic. Before I get down to the formal logic, I highly recommend you to learn the basic arithmetic operations.
Below is the step by step descriptive logic of this program.
- Read two integers and one character from user in the given format. Store them in some variable say num1, op and num2.
- Switch the op variable. Which contains the calculation operation character.
- For case '+', add the variables. Which is result = num1 + num2.
- For case '-', subtract the variables. Which is result = num1 - num2.
- Repeat the process for multiplication and division.
- Finally print the result.
Program to create calculator using switch case
/** * C program to create Simple Calculator using switch case */ #include <stdio.h> int main() { char op; float num1, num2, result=0.0f; /* * Print welcome message */ printf("WELCOME TO SIMPLE CALCULATOR\n"); printf("----------------------------\n"); printf("Enter [number 1] [+ - * /] [number 2]\n"); // Read two number and an operator from user scanf("%f %c %f", &num1, &op, &num2); switch(op) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; default: printf("Invalid operator"); } // Prints the result printf("%.2f %c %.2f = %.2f", num1, op, num2, result); return 0; }
Let us code the same program using the functional approach.
Program to create calculator using switch and function
/** * C program to create simple calculator using switch case and functions */ #include <stdio.h> /** * Function declarations for calculator */ float add(float num1, float num2); float sub(float num1, float num2); float mult(float num1, float num2); float div(float num1, float num2); int main() { char op; float num1, num2, result=0.0f; /* * Print welcome message */ printf("WELCOME TO SIMPLE CALCULATOR\n"); printf("----------------------------\n"); printf("Enter [number 1] [+ - * /] [number 2]\n"); // Read two number and an operator from user scanf("%f %c %f", &num1, &op, &num2); switch(op) { case '+': result = add(num1, num2); break; case '-': result = sub(num1, num2); break; case '*': result = mult(num1, num2); break; case '/': result = div(num1, num2); break; default: printf("Invalid operator"); } // Print the result printf("%.2f %c %.2f = %.2f", num1, op, num2, result); return 0; } /** * Function to add two numbers */ float add(float num1, float num2) { return num1 + num2; } /** * Function to subtract two numbers */ float sub(float num1, float num2) { return num1 - num2; } /** * Function to multiply two numbers */ float mult(float num1, float num2) { return num1 * num2; } /** * Function to divide two numbers */ float div(float num1, float num2) { return num1 / num2; }
Note: %.2f is used to print fractional values only up to two decimal places. You can also use %f to print fractional values normally up to six decimal places.
WELCOME TO SIMPLE CALCULATOR ---------------------------- Enter [number 1] [+ - * /] [number 2] 22 * 6 22.00 * 6.00 = 132.00
Happy coding ;)
You may also like
- Switch case programming exercises index.
- C program to enter marks of five subject and calculate total, average and percentage.
- C program to find maximum between two numbers using switch case.
- C program to check whether a number is even or odd using switch case.
- C program to print all factors of any number.
- C program to print all Prime factors of any number.
- C program to calculate factorial of any number.