Whenever I change the function "double getsales (double &num)" to double getsales (double num) and the function prototype appropriately, the program doesn't correctly. I don't understand why my lucky guess fixed it, no matter how much I try to read about reference variables.
Can someone explain?
#include <iostream>
#include <iomanip>
using namespace std;
double getsales (double &);
void findhighest (double, double, double, double);
int main()
{
double northeast = 0;
double southeast = 0;
double northwest = 0;
double southwest = 0;
cout << "Enter NorthEast sales: $" ;
cout << getsales(northeast) << endl;
cout << "Enter SouthEast sales: $";
cout << getsales(southeast) << endl;
cout << "Enter NorthWest sales: $";
cout << getsales(northwest) << endl;
cout << "Enter SouthWest sales: $";
cout << getsales(southwest) << endl;
findhighest(northeast, southeast, northwest, southwest);
return 0;
}
double getsales (double &num)
{
do
{
if(!cin)
{
cin.clear();
cin.ignore(100, '\n');
}
cin >> num;
cout << "Number entered: ";
}while(!cin || num <= 0);
return num;
}
void findhighest (double ne, double se, double nw, double sw)
{
const char *who = "NorthEast";
double high = ne;
if(se > high)
{
who = "SouthEast";
high = se;
}
if(nw > high)
{
who = "NorthWest";
high = nw;
}
if(sw > high)
{
who = "SouthWest";
high = sw;
}
cout << fixed << showpoint << setprecision(2) << endl;
cout << who << "has the highest sale ($" << high << ")" << endl;
}