/*
 * operator.c - implements basic operations (multiplication, 
 * division, addition, modulus.
 * 
 * Revised version of code pg. 191 (Program 4.6) (Bronson) "First 
 * Book on ANSI C"
 * 
 * CS50
 */

#include <stdio.h>

int main() {
  int opselect;
  float fnum, snum;

  printf("Please type in two numbers: ");
  scanf("%f %f", &fnum, &snum);
  printf("Enter a select code:");
  printf("\n 1 for addition");
  printf("\n 2 for multiplication");
  printf("\n 3 for division : ");
  printf("\n 4 for modulus  : ");
 
  scanf("%d", &opselect); 

  // This line below as an intentional bug. It is commented out. 
  // it causes a segmentation fault (segfault for short)
  // scanf("%d", opselect); 

  switch (opselect) {
    case 1:
      printf("The sum of the numbers entered is %6.3f\n", fnum + snum);
      break;
    case 2:
      printf("The product of the numbers entered is %6.3f\n", fnum * snum);
      break;
    case 3:
      if (snum != 0.0)
        printf("The first number divided by the second is %6.3f\n",fnum / snum);
      else
		    printf("Division by zero is not allowed\n");
      break; 
    case 4:
      printf("The modulus of the numbers entered is %d\n", (int)fnum % (int)snum);
      break;
    default:
      printf("Need to enter a number between 1-4\n\n"); 
 }

 return 0;
}