gpt4 book ai didi

c++ - 从输入文件计算平均值?

转载 作者:搜寻专家 更新时间:2023-10-31 01:45:09 24 4
gpt4 key购买 nike

我需要根据文本文件中给出的数字列表计算平均值。我让它工作了,但出于某种原因,它两次添加了列表中的最后一个数字,我不知道为什么。

文件中的数字是

34.8
33.5
32.9
30.5
33.3
31.9
30.6
34.4
36.2
35.2
33.2
31.0
31.8
34.4
33.0
32.9
32.8
31.9
31.6
32.2
29.5
36.8
30.9
30.2
35.3
32.1
31.2
36.0
38.2
34.2
34.5
34.7
33.2
39.4
31.2
28.6

代码:

double n;
double total=0;
double count=0;
double average=0;
ifstream input;
char name[13];

cout << "Enter a file name. "
<< "12 characters or less, please."
<< endl;
cin >> name;
input.open(name);
if(input.is_open())
{
while(input.good())
{
do(!input.eof())
{
input>>n;
total=total+n;
count++;
}
average=total/count;
cout<<"sum "<<total<<" count "<<count<<" average "<<average << endl;

}
input.close();
}
else
{
cout << "Error opening file\n";
}
}

最佳答案

你应该:

while(input >> n){
total+=n;
++count;
}

而不是你的 do 循环。最后一个被添加两次的原因是如果 input >> n 失败(例如因为 EOF),n 保持不变并且你再次添加它。

关于c++ - 从输入文件计算平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22544020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com