Switch: char and nested if : Switch « Language Basics « C / ANSI-C






Switch: char and nested if


/*Example 3.11 A calculator*/
#include <stdio.h>

void main()
{
  double number1 = 0.0;                /* First operand: a decimal number  */
  double number2 = 0.0;                /* Second operand: a decimal number */
  char operation = 0;                  /* Operation - must be +, -, *, /, or %  */

   printf("\nEnter the calculation\n");
   scanf("%lf %c %lf", &number1, &operation, &number2);

  /* Code to check the input goes here */
  switch(operation)
  {
    case '+':                              /* No checks necessary for add       */
      printf("= %lf\n", number1 + number2);
      break;

    case '-':                               /* No checks necessary for subtract */
      printf("= %lf\n", number1 - number2);
      break;

    case '*':                               /* No checks necessary for multiply */
      printf("= %lf\n", number1 * number2);
      break;                              

    case '/':
      if(number2 == 0)                      /* second operand cannot be zero    */
        printf("\n\n\aDivision by zero error!\n");
      else
        printf("= %lf\n", number1 / number2);
      break;

    case '%':                               /* second operand cannot be zero    */
      if((long)number2 == 0) 
        printf("\n\n\aDivision by zero error!\n");
    else
      printf("= %ld\n", (long)number1 % (long)number2);
        break;

    default:                          /* Operation is invalid*/
      printf("\n\n\aIllegal operation!\n");
  }
}



           
       








Related examples in the same category

1.a simple 4 function calculator
2.Switch demo
3.How to use switch: number
4.How to use switch: char
5.Switch inside for loop
6.Switch with int case
7.Switch with char case
8.Get three input at the same time: scanf
9.Console menu: switch with char case
10.Switch with default