Write a C program to create menu driven calculator that performs basic arithmetic operations (add, subtract, multiply and divide) using switch case and functions. The calculator should input two numbers and an operator from user. It should perform operation according to the operator entered and must take input in given format.

`<number 1> <operator> <number 2>`

**Example**

**Input**

5.2 - 3

**Output**

2.2

Switch case is often used to create menu driven program. Here in this post, we will learn to create menu driven program that accepts user choice to perform arithmetic operation. Based on the user choice the program performs arithmetic operation.

So without wasting much time, let us start with prerequisite.

## Required knowledge

Basic C programming, Arithmetic operators, Switch case statement, Functions

## Logic to create calculator using `switch...case`

Step by step descriptive logic to create menu driven calculator that performs all basic arithmetic operations.

- Input two numbers and a character from user in the given format. Store them in some variable say
`num1`,`op`and`num2`. - Switch the value of
`op`i.e.`switch(op)`

. - There are four possible values of
`op`i.e.`'+'`,`'-'`,`'*'`and`'/'`. - For
`case '+'`

perform addition and store result in some variable i.e.`result = num1 + num2`

. - Similarly for
`case '-'`

perform subtraction and store result in some variable i.e.`result = num1 - num2`

. - Repeat the process for multiplication and division.
- Finally print the value of
`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");
/* Input two number and operator from user */
scanf("%f %c %f", &num1, &op, &num2);
/* Switch the value and perform action based on operator*/
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 functions.

## Program to create calculator using `switch...case`

and functions

```
/**
* 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");
/* Input two number and 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.

Output

WELCOME TO SIMPLE CALCULATOR ---------------------------- Enter [number 1] [+ - * /] [number 2] 22 * 6 22.00 * 6.00 = 132.00

Happy coding 😉

### Recommended posts

- 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.

doubt, write here. I willhelp my best.<pre><code> ----Your Source Code---- </code></pre>