查找数组中值的平均值
finding the average of values in an array
我正在使用for loop
获取txt文件中的值。
我想把这些数字平均在一起。所以我在做这件事,
int size = 0;
double sum = 0;
for (int i = 0; i < size; ++i)
{
sum += data[i].getQuantity();
}
double avg = ((double)sum)/size; //or cast sum to double before division
std::cout << avg << 'n';
return 0;
当我计算平均值时,我得到80nan
。我想我需要做atod
,但我似乎无法正确地实现它。
我在这里缺少什么来查找存储在getQuantity
中的值的平均值
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <iterator>
struct Input
{
friend std::istream& operator >>(std::istream& inp, Input& item);
friend std::ostream& operator <<(std::ostream& outp, Input const& item);
std::string group;
float total_pay;
unsigned int quantity;
Input() : group(), total_pay(), quantity()
{
}
Input(std::string groupIn, float total_payIn, unsigned int quantityIn) :
group(std::move(groupIn)),
total_pay(total_payIn),
quantity(quantityIn)
{
}
std::string const& getGroup() const { return group; }
float getTotalPay() const { return total_pay; }
unsigned int getQuantity() const { return quantity; }
};
std::istream& operator >>(std::istream& inp, Input& item)
{
return (inp >> item.group >> item.total_pay >> item.quantity);
}
std::ostream& operator <<(std::ostream& outp, Input const& item)
{
outp
<< item.getGroup() << ' '
<< item.getTotalPay() << ' '
<< item.getQuantity();
return outp;
}
int main()
{
std::ifstream infile("input.txt");
if (!infile)
{
std::cerr << "Failed to open input file" << 'n';
exit(EXIT_FAILURE);
}
std::vector<Input> data;
std::string line;
while (std::getline(infile, line))
{
std::istringstream iss(line);
Input inp;
if (iss >> inp) // calls our extaction operator >>
data.push_back(inp);
else
std::cerr << "Invalid input line: " << line << 'n';
}
std::copy(data.begin(), data.end(),
std::ostream_iterator<Input>(std::cout,"n"));
std::cout << data[2].getQuantity();
int size = 0;
double sum = 0;
for (int i = 0; i < size; ++i)
{
sum += data[i].getQuantity();
}
double avg = ((double)sum)/size;
std::cout << avg << 'n';
return 0;
}
更改
int size = 0;
至
size_t size = data.size();
因此,您将正确的值设置为size
,循环正确的次数,然后除以正确的数字,而不是0
。
在这个程序中用0
除,总是会得到ERROR
因为除以CCD_ 9根本不可能。
相关文章:
- 按平均值替换数组中的元素
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 浮点格式数组的平均值
- 使用动态数组求和和和求平均值
- 玩数字编程挑战(子数组的平均值)
- 查找数组最后 3 个数字的平均值
- C++数组的最大值、最小值、平均值函数
- 五个中三个最大参数的平均值,不使用排序算法或向量/数组
- 我需要以尺寸方式计算数组的平均值
- 计算数组中特定线的平均值并存储在另一个数组中
- 尝试在数组(C )中找到平均值时,获取-NAN(IND)输出
- 从数组中获取值并计算平均值,然后存储在数组中
- 如何在数组中的范围内添加所有数字?然后找到该范围的平均值
- C++数组,平均值(初学者)
- 数组元素的奇怪平均值
- c++中const数组的平均值模板
- C++计算2D数组中可变宽度数字的平均值
- 使用函数来查找数组C++的平均值
- 函数在数组中求平均值