C ++变量保持重置为0

时间:2014-05-07 20:25:31

标签: c++ variables

所以我得到了这段简单的代码。它应该做的是从华氏温度计算摄氏度。但是,出于某种原因,它会将分值重置为0.任何人都可以解释为什么要这样做?我确定我只是错过了一些小而愚蠢的东西。

    #include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

int main (void)
{
ofstream fout("temps.dat");
float fahr=0, avgcent=0, avgfahr=0, totalcent=0, totalfahr=0, gettemp=0;
double cent = ((5/9) * (fahr - 32));
const int gatekeeper=-99999;
fout << setw(25) << "Fahrenheit" << setw(20) << "Centigrade" << endl << endl;
fout.setf(ios :: fixed);
fout.setf(ios :: showpoint); 
cout << "Please input Fahrenheit temp (-99999 to quit)" << endl;
cin >> fahr;
while (fahr != gatekeeper)
{

    totalfahr = totalfahr + fahr;
    totalcent = cent + totalcent;
    cout << cent;
    cin >> fahr;

}//End of while (gettemp != gatekeeper)
}//End of int main (void) for HW2

1 个答案:

答案 0 :(得分:8)

在您的第double cent = ((5/9) * (fahr - 32));行中,表达式(5/9)解析为0,因为它使用整数除法。将其替换为(5.0/9.0),您应该得到正确的结果。