Example
Input
5.2 - 3
Output
2.2
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;
}
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;
}
/*
Output :
WELCOME TO SIMPLE CALCULATOR
----------------------------
Enter [number 1] [+ - * /] [number 2]
22 * 6
22.00 * 6.00 = 132.00
*/