Code:
#include <stdio.h>
#include <stdlib.h>
double addfunc(double a, double b); //Add function
double subfunc(double a, double b); //Subtract function
double divfunc(double a, double b); //Divide function
double multifunc(double a, double b); //Multiply function
void inputfunc(double *a, double *b); //Input from console function
void calculate(double *a, double *b); //Choice of operation and calling function
int main()
{
double answer1 = 0; //Holds first value inputted
double answer2 = 0; //Holds second value inputted
inputfunc(&answer1, &answer2); //inputfunc function call passing back answer1/2
calculate(&answer1, &answer2); //calculate function call passing answer1/2
return 0;
}
double addfunc(double a, double b) //Adds two numbers
{
return a+b;
}
double subfunc(double a, double b) //Subtracts two numbers
{
return a-b;
}
double divfunc(double a, double b) //Divides two numbers
{
return a/b;
}
double multifunc(double a, double b) //Multiplies two numbers
{
return a*b;
}
void inputfunc(double *a, double *b) //function to provide input
{
double temp1 = .12351; //temp1 default value
double temp2 = .12351; //temp1 default value
do //do loop continues to repeat if default value are not changed
{
printf("Enter your first number: "); //Ask for input
scanf("%lf",&temp1); //Collect console input assign to temp1
printf("Enter your second number: "); //Ask for input2
scanf("%lf",&temp2); //Collect console input assign to temp2
}
while(temp1 == .12351 || temp2 == .12351);
*a = temp1; //pass values collected back
*b = temp2; //pass values collected back
return;
}
void calculate(double *a, double *b) //calculate function that asks for input on operation and calculate/outputs result
{
char operation = 'Z'; //preset value also used in while loop
double temp1 = *a; //temp var to hold passed value
double temp2 = *b; //temp var to hold passed value
while (operation == 'Z') //while loop to keep entry going if value entered doesnt meet if statement condition
{
printf("\nWhich operation would you like to use?(A/S/M/D/(Q)uit): "); //prompt for user to enter operation
operation = getchar(); //operation collecting input
if (operation == 'A' || operation == 'S' || operation == 'M' || operation == 'D' == operation == 'Q') //checking for bad input
{
switch (operation) //switch statement that takes choice and calc/output result
{
case 'A':
printf("Result: %lf",addfunc(temp1,temp2));
break;
case 'S':
printf("Result: %lf",subfunc(temp1,temp2));
break;
case 'M':
printf("Result: %lf",multifunc(temp1,temp2));
break;
case 'D':
printf("Result: %lf",divfunc(temp1,temp2));
break;
case 'Q':
return;
}
//if bad input continues loop
}
else
{
operation = 'Z';
continue;
}
//resets var to allow for looping on bad input
}
return;
}
Thank you for the help. These errors were driving me nuts.
I am now trying to figure out why this line is doubling itself:
Code:
printf("\nWhich operation would you like to use?(A/S/M/D/(Q)uit): "); //prompt for user to enter operation
operation = getchar();