#include <stdio.h>
#include <ctype.h>
int getfirst(void);
void menu(void);
void add(void);
void subtract(void);
void multiply(void);
void divide(void);
float getnum(void);
int main(void)
{
char response;
menu();
while ((response = getfirst()) != 'q')
{
if (response == '\n') /* skip over newlines */
continue;
response = tolower(response); /* accept A as a, etc. */
switch (response)
{
case 'a':add();
break;
case 's':subtract();
break;
case 'm':multiply();
break;
case 'd':divide();
break;
default:printf("Please enter a, s, m, d, or q.\n");
menu();
break; // go to beginning of loop
}
menu();
}
printf("Bye.\n");
return 0;
}
void menu(void)
{
printf("********************************************************"
"*********\n");
printf("Enter the operation of your choice:\n");
printf("a. add\t\t s. subtract\n");
printf("m. multiply\t d. divide\n");
printf("q. quit\n");
printf("********************************************************"
"*********\n");
}
int getfirst(void)
{
int ch;
ch = getchar();
while (isspace(ch))
ch = getchar(); /* skip over space */
while (getchar() != '\n')
continue; /* skip over otherinput */
return ch;
}
void add(void)
{
float num1;
float num2;
printf("Enter first number: ");
num1 = getnum();
printf("Enter second number: ");
num2 = getnum();
printf("%.1f + %.1f = %.1f\n",num1,num2,num1 + num2);
}
void subtract(void)
{
float num1;
float num2;
printf("Enter first number: ");
num1 = getnum();
printf("Enter second number: ");
num2 = getnum();
printf("%.1f - %.1f = %.1f\n",num1,num2,num1 - num2);
}
void multiply(void)
{
float num1;
float num2;
printf("Enter first number: ");
num1 = getnum();
printf("Enter second number: ");
num2 = getnum();
printf("%.1f * %.1f = %.1f\n",num1,num2,num1 * num2);
}
void divide(void)
{
float num1;
float num2;
printf("Enter first number: ");
num1 = getnum();
printf("Enter second number: ");
while ((num2 = getnum()) == 0)
{
printf("Enter a number other than 0: ");
continue;
}
printf("%.1f / %.1f = %.1f\n",num1,num2,num1 / num2);
}
float getnum(void)
{
float num;
char ch;
while (scanf("%f",&num) != 1)
{
while ((ch = getchar()) != '\n')
putchar(ch);
printf(" is not an number.\n");
printf("Please enter a number,such as 2.5,-1.78E8,or 3: ");
}
while ((getchar()) != '\n')
continue;
return num;
}