Это происходит потому, что вы отправляете глобальную переменную в вызов функции. Итак, в вашей функции создается копия этой переменной. Если вы хотите использовать глобальный var ответ:
void getTemps();
void calcAvg();
void displayAvg();
double temp1, temp2, temp3;
double sum;
float tempAvg;
int main()
{
getTemps();
calcAvg();
displayAvg();
cin.get();
cin.get();
//system("PAUSE");
return 0;
}
void getTemps()
{
// Get up to three temperatures
cout << "Enter temperatures of 3 cities." << endl;
cin >> temp1;
cin >> temp2;
cin >> temp3;
sum = temp1 + temp2 + temp3;
}
void calcAvg()
{
tempAvg = (sum / 3);
}
void displayAvg()
{
cout << fixed /*<< setprecision(1)*/ << temp1 << endl;
cout << fixed /*<< setprecision(1)*/ << temp2 << endl;
cout << fixed /*<< setprecision(1*/ << temp3 << endl;
cout << "The average temperature is " << tempAvg << " degrees." << endl;
}
Но это плохой стиль программирования.
Было бы лучше:
#include<iostream>
using namespace std;
double getTemps(double& temp1, double& temp2, double& temp3);
double calcAvg(const double sum);
void displayAvg(const double temp1, const double temp2, const double temp3, const double tempAvg);
int main()
{
double sum=0;
double temps1=0.f, temps2=0.f,temps3=0.f;
double tempavg = 0.f;
sum=getTemps(temps1,temps2,temps3);
tempavg=calcAvg(sum);
displayAvg(temps1,temps2,temps3,sum);
cin.get();
cin.get();
//system("PAUSE");
return 0;
}
double getTemps(double& temp1, double& temp2, double& temp3)
{
// Get up to three temperatures
cout << "Enter temperatures of 3 cities." << endl;
cin >> temp1;
cin >> temp2;
cin >> temp3;
return (temp1 + temp2 + temp3);
}
double calcAvg(const double sum)
{
return (sum / 3);
}
void displayAvg(const double temp1, const double temp2, const double temp3, const double tempAvg)
{
cout << fixed /*<< setprecision(1)*/ << temp1 << endl;
cout << fixed /*<< setprecision(1)*/ << temp2 << endl;
cout << fixed /*<< setprecision(1*/ << temp3 << endl;
cout << "The average temperature is " << tempAvg << " degrees." << endl;
}