A Calculator is a program that can able to do basic Mathematical Operations like Addition, Subtraction, Multiplication, and Division.
In this C program, We help you make a simple Calculator, for that the user has to enter the numbers and select the operation that includes
Then the calculator takes the input and does the user-selected Mathematical operation and shows the result.
After getting the input from the user for operands and operator, we use a switch case
statement for selecting any of the operations like '+', '- ', '*', and '/ ' based on the user input. Then the control will the switched to that particular case.
We are also using the precision operator for float point numbers as we need to display only a certain extent of decimal places. For continuing the calculator without exiting, a do-while loop
is used. Then ask the user for a choice if he wants to do more operations or not.
If the user selects 'y' or 'Y' then the next operation could be performed otherwise, exit from the calculator. The operations will be performed inside the do
including the user's choice for the next operations until while
checks user input a choice NO.
Note: The switch case needs a default case which is taken if nothing else matches the switch case.
STEP 1: Import the header libraries into the C program to use the built-in functions like printf
and scanf.
STEP 2: Declare n1, n2, and result as type double.
STEP 3: Define a function readOperands() of type void, to read the operands to n1,n2
STEP 4: Start the program execution by using the main()
Function.
STEP 5: Declare oper, nxt as type character and tmp as integer
STEP 6: Start a do-while loop
, do the steps from 6 to 10 until the user wants to quit ie., the user inputs a choice other than 'y' || 'Y'
STEP 7: Reset the tmp to 0, Accept the operator oper from the user as to which operation he has to do.
STEP 8: Use the switch
case operation to select the operation which the user input and, call the function readOperands() and do the operation inside that switch
statement according to the operator selected. The default case will set tmp =1 for incorrect operator input and print "Entered operation is not available".
STEP 9: If tmp is 0 then print the result using a precision operator in float. [ to specify the number of decimal digits needed].
STEP 10: Ask the user "Do you want to continue? (y/n) " and read the input to nxt. The while
checks nxt == 'y' || nxt == 'Y' for true and goes to step 6, continue the operations; but if it checks false then stops execution.
To make a calculator program, we used the below concepts in C programming, we recommend you to refer those for better understanding
#include <stdio.h>
double n1, n2, result; // Global variables
//user defined function to read operands
void readOperands() {
n1 = n2 = result = 0; // reset variables to 0
printf("Enter two operands: ");
scanf(" %lf %lf", & n1, & n2);
}
void main() {
int tmp; // tmp is used to check operator inputed is correct or not
char oper, nxt; /* oper is an operator to be selected, nxt is the next choice of user */
printf("Simulation of a Basic Calculator\n");
do {
tmp =0;
printf("\nEnter an operator (+, -, *, /): "); // read operation
scanf(" %c", & oper);
switch (oper)
{
case '+':
readOperands();
result = n1 + n2; // switch case 1 for addition
break;
case '-':
readOperands();
result = n1 - n2; // case 2 for subtraction
break;
case '*':
readOperands();
result = n1 * n2; // case 3 for multiplication
break;
case '/':
readOperands();
result = n1 / n2; // case 4 for division
break;
default:
tmp = 1;
printf("\nEntered operation is not available\n\n"); // default switch case for incorrect operator input
}
if (tmp == 0)
printf("\n%5.2f %c %5.2f= %5.2f\n\n", n1, oper, n2, result); // prints the output of the c program
printf("Do you want to continue? (y/n) "); // asking user for more operation on calculator
scanf(" %c", & nxt);
} while (nxt == 'y'||nxt == 'Y');
}
Simulation of a Basic Calculator Enter an operator (+, -, *, /): + Enter two operands: 25 56 25.00 + 56.00= 81.00 Do you want to continue? (y/n) y Enter an operator (+, -, *, /): * Enter two operands: 15 15 15.00 * 15.00= 225.00 Do you want to continue? (y/n) y Enter an operator (+, -, *, /): - Enter two operands: 23.5 12.3 23.50 - 12.30= 11.20 Do you want to continue? (y/n) y Enter an operator (+, -, *, /): / Enter two operands: 125 12 125.00 / 12.00= 10.42 Do you want to continue? (y/n) y Enter an operator (+, -, *, /): % Entered operation is not available Do you want to continue? (y/n) n