**Calculator in C**: A calculator is a tool used to compute mathematical operations on numbers. Simple calculators can only perform the mathematical operations of addition, subtraction, multiplication, and division. In contrast, complex calculators can work with hyperbolic, trigonometric, square-root, logarithmic, and exponential functions. Simple Calculator Program in C will be explained in this article with an example.

Write a C Program that simulates a simple calculator.

Step 1: Declare the variables.

Step 2: Enter the two numbers.

Step 3: Enter the operator of your choice.

Step 4: Store the result in the variable ‘result’.

Step 5: Print the result.

Step 6: Exit the Program.

Let’s discuss different ways to create a calculator program in C.

- Calculator Program in C using Switch Case
- Calculator Program in C using if-else
- Calculator Program in C using do-while and Switch Case

In this C Program we are going to construct a simple calculator using Switch Case.

Here is the source code of the C program that simulates a simple calculator using a switch case statement. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

/* * C program to simulate a simple calculator to perform arithmetic * operations like addition, subtraction, multiplication and division */ #include <stdio.h> void main() { char operator; float num1, num2, result; printf("Simulation of a Simple Calculator\n"); printf("*********************************\n"); printf("Enter two numbers \n"); scanf("%f %f", &num1, &num2); fflush(stdin); printf("Enter the operator [+,-,*,/] \n"); scanf("%s", &operator); switch(operator) { case '+': result = num1 + num2; // add two numbers break; case '-': result = num1 - num2; // subtract two numbers break; case '*': result = num1 * num2; // multiply two numbers break; case '/': result = num1 / num2; // divide two numbers break; default : printf("Error in operation"); break; } printf("\n %5.2f %c %5.2f = %5.2f\n", num1, operator, num2, result); }

In this C program, we read three float values and an operator symbol using **num1**, **num2**, **result** and **operator** variables respectively.

Switch case statement is used to perform arithmetic operations like addition, subtraction, multiplication and division in each case. The user needs to enter the operator on which they need to perform the operation. If the operator symbol does not match any case in the switch case, then execute the default statement and print the statement as “Error in operation”.

**Examples:**

- Consider, the two numbers entered by user are
**2**and**3**, and the operator entered by the user is ‘**+**’. We enter the switch case and find that the operator**+**matches with the first case, so we will enter the first case i.e.**case ‘+’**and compute the**result**(result = 2 + 3 = 5). Since, result is a float variable therefore, output printed will be**5.00**. - Consider, the two numbers entered by user are
**65000**and**4700**, and the operator entered by the user is ‘**–**’. We enter the switch case and find that the operator**–**matches with the second case, so we will enter the second case i.e.**case ‘-‘**and compute the**result**(result = 65000 – 4700 = 60300). Since, result is a float variable therefore, output printed will be**60300.00**.

**Time Complexity: O(1)**

The above calculator program has a time complexity of O(1) as there are no loops and each condition is executed only once.

**Space Complexity: O(1)**

In the above program, space complexity is O(1) as no extra variable has been taken to store the values in the memory. All the variables initialized takes a constant O(1) space.

**Test Case 1:** In this case, we are simulating an addition operation with a simple calculator.

Simulation of a Simple Calculator ********************************* Enter two numbers 2 3 Enter the operator [+,-,*,/] + 2.00 + 3.00 = 5.00

**Test Case 2:** In this case, we are simulating an multiplication operation with a simple calculator.

Simulation of a Simple Calculator ********************************* Enter two numbers 50 40 Enter the operator [+,-,*,/] * 50.00 * 40.00 = 2000.00

**Test Case 3:** In this case, we are performing Division operation using simple calculator.

Simulation of a Simple Calculator ********************************* Enter two numbers 500 17 Enter the operator [+,-,*,/] / 500.00 / 17.00 = 29.41

**Test Case 4:** In this case, we are performing Subtraction operation using simple calculator.

Simulation of a Simple Calculator ********************************* Enter two numbers 65000 4700 Enter the operator [+,-,*,/] - 65000.00 - 4700.00 = 60300.00

In this C Program we are going to construct a simple calculator using if-else condition.

Here is the source code of the C program that simulates a simple calculator using the if-else condition. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

/* * C program to simulate a simple calculator to perform arithmetic * operations like addition, subtraction, multiplication and division */ #include <stdio.h> void main() { char operator; float num1, num2, result; printf("Simulation of a Simple Calculator\n"); printf("*********************************\n"); printf("Enter two numbers \n"); scanf("%f %f", &num1, &num2); printf("Enter the operator [+,-,*,/] \n"); scanf("%s", &operator); if(operator == '+') result = num1 + num2; else if(operator == '-') result = num1 - num2; else if(operator == '*') result = num1 * num2; else if(operator == '/') result = num1 / num2; else printf("Error in operation"); printf("\n%5.2f %c %5.2f = %5.2f\n", num1, operator, num2, result); }

In this C program, we read three float values and an operator symbol using **num1**, **num2**, **result** and **operator** variables respectively.

If-else statement is used to perform arithmetic operations like addition, subtraction, multiplication and division in each condition. The user needs to enter the operator on which they need to perform the operation. If the operator symbol does not match any condition, then execute the else statement and print the statement as “Error in operation”.

**Examples:**

- Consider, the two numbers entered by user are
**50**and**40**, and the operator entered by the user is ‘*****’. Now, in the if-else condition we will check the condition that matches operator==’*****’. Now, in that condition multiplication will be performed over the two numbers and the result (50*40 = 2000) will be stored in the**result**variable. Finally, the result will be printed as**2000.00**. - Consider, the two numbers entered by user are
**400**and**16**, and the operator entered by the user is ‘**/**’. Now, in the if-else condition we will check the condition that matches operator==’**/**’. Now, in that condition multiplication will be performed over the two numbers and the result (400/16 = 25) will be stored in the**result**variable. Finally, the result will be printed as**25.00**.

**Time Complexity: O(1)**

The above calculator program has a time complexity of O(1) as there are no loops and each condition is executed only once.

**Space Complexity: O(1)**

In the above program, space complexity is O(1) as no extra variable has been taken to store the values in the memory. All the variables initialized takes a constant O(1) space.

**Test Case 1:** Addition

Simulation of a Simple Calculator ********************************* Enter two numbers 3 5 Enter the operator [+,-,*,/] + 3.00 + 5.00 = 8.00

**Test Case 2:** Multiplication

Simulation of a Simple Calculator ********************************* Enter two numbers 40 50 Enter the operator [+,-,*,/] * 40.00 * 50.00 = 2000.00

**Test Case 3:** Division

Simulation of a Simple Calculator ********************************* Enter two numbers 400 16 Enter the operator [+,-,*,/] / 400.00 / 16.00 = 25.00

**Test Case 4:** Subtraction

Simulation of a Simple Calculator ********************************* Enter two numbers 6500 4700 Enter the operator [+,-,*,/] - 5500.00 - 4100.00 = 1400.00

In this C Program we are going to construct a simple calculator using do-while loop and Switch Case which will allow users to repeatedly perform calculation until they want to exit.

Here is the source code for a C program that simulates a simple calculator using a do-while loop and switch case. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

/* * C program to simulate a simple calculator to perform arithmetic * operations like addition, subtraction, multiplication, division, remainder etc. */ #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { float num1, num2, result; // used for all other operations except remainder int ch,n1,n2,res; //used for remainder operation do{ printf("\nSimulation of a Simple Calculator\n"); printf("*********************************\n"); printf("Select a number to perform operation on Calculator"); printf("\n1->Addition\t 2->Subtraction\t 3->Multiplication\t 4->Division\t 5->Remainder\t 6- >Square\t 7->Square Root 8->Exit\n"); scanf("%d",&ch); switch(ch) { // Add two numbers case 1: printf("Enter two numbers \n"); scanf("%f %f", &num1, &num2); result = num1 + num2; printf("\n%.2f + %.2f = %.2f\n",num1,num2,result); break; // Subtract two numbers case 2: printf("Enter two numbers \n"); scanf("%f %f", &num1, &num2); result = num1 - num2; printf("\n%.2f - %.2f = %.2f\n",num1,num2,result); break; // Multiplication of two numbers case 3: printf("Enter two numbers \n"); scanf("%f %f", &num1, &num2); result = num1 * num2; printf("\n%.2f * %.2f = %.2f\n",num1,num2,result); break; // Division of two numbers case 4: printf("Enter two numbers \n"); scanf("%f %f", &num1, &num2); result = num1 / num2; printf("\n%.2f / %.2f = %.2f\n",num1,num2,result); break; // Remainder of two numbers case 5: printf("Enter two numbers \n"); scanf("%d %d", &n1, &n2); res = n1 % n2; printf("Remainder of two numbers = %d\n",res); break; // Square of number case 6: printf("Enter the number \n"); scanf("%f", &num2); result = num2 * num2; printf("Square of %.2f = %.2f\n",num2,result); break; // Square root of a number case 7: printf("Enter the number \n"); scanf("%f", &num1); result = sqrt(num1); printf("Square Root of %.2f = %.2f\n",num1,result); break; case 8: printf ("Execution Terminated"); exit(0); break; default: printf("Error in Operation"); break; } }while(ch!=8); }

In this C program, we use do-while loop and switch case. The do-while loop runs until the user give the input as 8(exit) while choosing operations that needs to be performed.

Switch case statement is used to perform arithmetic operations like addition, subtraction, multiplication, division etc. in each case. The user needs to enter the values on which they need to perform the operation in each specific switch case statement. If the user enters any other number except 1-8 while choosing the operation, then the default statement will be executed and an error message will be prompted “Error in operation”.

**Examples:**

In this calculator program, 1^{st} the users need to choose the number associated with the operator on which they need to perform the calculation. Then they need to enter the number for calculation.

- Suppose the operator chosen by user is ‘
**7 i.e., square root**’. Now, in the switch case we will enter the case 7 where the user needs to enter a number to calculate**square root**. Suppose the number chosen by user is**49**, so square root of**49**will be calculated and the**result = 7**will be printed as output. - Suppose the operator chosen by user is ‘
**6 i.e., square**’. Now, in the switch case we will enter the case 6 where the user needs to enter a number to calculate**square of a number**. Suppose the number chosen by user is**5**, so square root of**5**will be calculated and the**result = 25**will be printed as output.

**Time Complexity: O(n)**

The above calculator program has a time complexity of O(n) as there is a do while loop and each condition is executed only once, where n is the number of times user enters the choice before exiting the condition.

**Space Complexity: O(1)**

In the above program, space complexity is O(1) as no extra variable has been taken to store the values in the memory. All the variables initialized takes a constant O(1) space.

Simulation of a Simple Calculator ********************************* Select a number to perform operation on Calculator 1->Addition 2->Subtraction 3->Multiplication 4->Division 5->Remainder 6->Square 7->Square Root 8->Exit 1 Enter two numbers 2 3 2.00 + 3.00 = 5.00 Simulation of a Simple Calculator ********************************* Select a number to perform operation on Calculator 1->Addition 2->Subtraction 3->Multiplication 4->Division 5->Remainder 6->Square 7->Square Root 8->Exit 5 Enter two numbers 10 8 Remainder of two numbers = 2 Simulation of a Simple Calculator ********************************* Select a number to perform operation on Calculator 1->Addition 2->Subtraction 3->Multiplication 4->Division 5->Remainder 6->Square 7->Square Root 8->Exit 6 Enter the number 5 Square of 5.00 = 25.00 Simulation of a Simple Calculator ********************************* Select a number to perform operation on Calculator 1->Addition 2->Subtraction 3->Multiplication 4->Division 5->Remainder 6->Square 7->Square Root 8->Exit 7 Enter the number 49 Square Root of 49.00 = 7.00 Simulation of a Simple Calculator ********************************* Select a number to perform operation on Calculator 1->Addition 2->Subtraction 3->Multiplication 4->Division 5->Remainder 6->Square 7->Square Root 8->Exit 8 Execution Terminated

To practice programs on every topic in C, please visit “Programming Examples in C”, “Data Structures in C” and “Algorithms in C”.

**Next Steps:**

- Get Free Certificate of Merit in C Programming
- Participate in C Programming Certification Contest
- Become a Top Ranker in C Programming
- Take C Programming Tests
- Chapterwise Practice Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Chapterwise Mock Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

**Related Posts:**

- Apply for Computer Science Internship
- Buy Computer Science Books
- Watch Advanced C Programming Videos
- Practice BCA MCQs
- Practice Computer Science MCQs