-
I gotta do this for class and can't figure it out!!! Help!!
I have got to use functions to do the calculations...my problem is I am trying to send solve back to the main ()...I've worked on this for all day...here is the source code:
//PROBLEM: math choice
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void multiply();
void divided();
void adding();
void subtract();
int main(){
float a,b,solve;
char sign, answer;
do{
cout<<"Please enter your mathematical"<<endl;
cout<<"expression: ";
cin>>a;
cin>>sign;
cin>>b;
switch (sign){
case '+': { adding();
break;}
case '-': { subtract();
break;}
case '*': { multiply();
break;}
case '/': { divided();
break;}
default : {cout<<"Please choose either +,-,*, or /."<<endl;}}
if((sign=='+')||(sign=='-')||(sign=='*')||(sign=='/')){
cout<<"Your expression, "<<a<<sign<<b<<" = "<<solve<<endl;}
cout<<"Would you like to enter another expression?"<<endl;
cout<<"Enter 'y' for yes and 'n' for no. Answer: ";
cin>>answer;
}while(answer=='y');
getch();
return 0;}
//math evaluation functions
void adding(a,b,solve){
solve=a+b;}
void subtract(a,b, solve){
solve=a-b;}
void multiply(a,b,solve){
solve=a*b;}
void divided(a,b,solve){
solve=a/b;}
////// Here are my errors:
[Linker Error] Unresolved external 'adding()' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER4\PROJECTS\MATHCHOICE.OBJ.
[Linker Error] Unresolved external 'subtract()' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER4\PROJECTS\MATHCHOICE.OBJ.
[Linker Error] Unresolved external 'multiply()' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER4\PROJECTS\MATHCHOICE.OBJ.
[Linker Error] Unresolved external 'divided()' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER4\PROJECTS\MATHCHOICE.OBJ.
/////SOMEBODY PLEASE HELP ME!!!!
-
your prototypes need to match the function declarations here is what i would try
double adding(double a, double b);
or
double adding(double,double);
for the proto type
double adding(double a, double b);
{
return (a+b);
}
for the function
in main use
solve=adding(a,b);
-
your function prototypes must match the functions definition.
void multiply(); void divided(); void adding(); void subtract();
defines 4 functions that take 0 arguements and do not return values. I would have the functions take 2 arguements(a, b) and return a float that is stored in solve.
prototypes:
float multiply(float, float);
float divided(float, float);
float adding(float, float);
float subtract(float, float);
definitions:
float multiply(float a, float b){return a*b;}
float divided(float a, float b){return a/b;}
float adding(float a, float b){return a+b;}
float subtract(float a, float b){return a-b;}
your switch statement would look like
switch(case)
{
case '+':
solve = adding(a, b);
break;
case '-':
solve = subtract(a, b);
break;
case '*':
solve = multiply(a, b);
break;
case '/':
solve = divided(a, b)
break;
default :
cout<<"Please choose either +,-,*, or /."<<endl;
}
havent seen a switch statement with all the extra {}'s but it just may be a different style.
suggestion: read about local variables, how variables are passes to functions, and functions with a return type
-
also
If you are expecting multiple values take them as one line then parse them out....
That way you have arguments that you can verify....
Popular pages
Recent additions