我正在开发一个程序,但我面临一些问题。以下程序从数字文件计算平均值,最大值等。但是我无法在下面的代码中计算标准偏差。 编译器是MS视觉工作室10标准偏差问题
int main()
{
ifstream infile;
float num;
float total;
float x;
float aver;
float sumDiffSqr;
float stdDev;
vector<std::string> files = { "mynumberlist1.txt" };
for (int i = 0; i<files.size(); i++)
{
x = 0;
total = 0;
infile.open(files.at(i));
if (!infile.is_open())
{
cout << "Error opening file\n";
return 1;
}
while (!infile.eof())
{
infile >> num;
total = total + num;
x++;
}
aver = (total - num)/(x - 1);
cout << "The last number in this range is: " << num << "\n";
cout << "The sum of this range is: " << (total - num) << '\n';
cout << "The number of items in this range is: " << x - 1 << '\n';
cout << "The average of this range is: " << aver << '\n';
cout << "" << '\n';
cout << "Press enter to continue..." << '\n';
sumDiffSqr = 0;
for (i = 0; i < num; i++)
{
sumDiffSqr = sumDiffSqr + pow((num[i] - aver), 2);
}
stdDev = sqrt(sumDiffSqr/num);
infile.close();
getchar();
}
return 0;
}
这是否甚至编译? – mathematician1975
为什么你不能计算标准偏差?是因为你不知道那是什么吗? – rghome
您正在错误地检查您的输入循环,请参阅[为什么eof不好](http://stackoverflow.com/questions/5837639/eof-bad-practice)。 –