【发布时间】:2019-03-03 04:56:32
【问题描述】:
我们的教授希望我们修复计算data.txt 文件中值的数量并计算它们的平均值的代码。这是代码:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
string s;
ifstream f;
int nItems;
double * data;
double sum=0;
vector < double > data2;
double item;
cout <<"File name: ";
cin >> s;
f.open (s.c_str() );
while (! f.eof() )
{
f >> item;
data2.push_back(item);
}
for (int i =0; i < nItems; i++)
{
sum += data[i];
}
cout << "The average is " << sum/nItems <<".\n";
cout << "Press the enter key to continue ...";
cin.get();
return EXIT_SUCCESS;
}
他的指示是:
修改今天工作的代码,以便正确计算向量
数据中数据的平均值。现在代码只是给你一个不是平均值的值。
我尝试将 nItems 变量更改为 12,这似乎可行,但代码的目标是确定 nItems 并使用它来找到平均值,我似乎无法弄清楚。
【问题讨论】:
-
该程序通过访问未初始化的变量
sum表现出未定义的行为。我们将在何处以及如何初始化以及将其初始化为什么值的问题留给读者作为练习。 -
指令中提到了
vector<double>,但这段代码中没有vector。