【问题标题】:How to add all numbers within a range in an array? then find the average of that range如何将数组中某个范围内的所有数字相加?然后找到该范围的平均值
【发布时间】:2017-09-09 07:41:30
【问题描述】:

我对 C++ 有疑问,我不知道如何启动这段代码,因为我是新手。

我的问题是我有一堆数组,下面的一个是一个例子。从一堆数组中,我必须找到从 0.0 到 0.5 范围内的所有数字一旦代码找到它找到的所有数字,并将它们加在一起,然后除以数字的数量;为了找到平均值。

我希望有人能够告诉我如何在数组中搜索指定范围内的数字,然后找到这些数字的平均值。

float array1[] = { 0.141573001, 0.129732453, 1.689353116, 1.445072308, 
                   1.767702844, 1.967608838, 0.792822868, 1.836018189, 
                   0.521325809, 1.242620743, 0.30556143 , 1.45634    ,
                   1.242620743, 0.30556143 , 1.45634    , 1.340469519,
                   0.02216116 , 0.030461417, 1.420794672, 0.700459128,            
                   0.959538479, 0.716117771, 1.612446026
                 };

【问题讨论】:

  • 您必须使用循环查看数组中的所有数字。在循环中,检查每个值是否在范围内。
  • 我能看到一个例子吗?因为我是编码新手,并不真正了解循环是什么
  • geeksforgeeks.org/loops-in-c 适用于 C 但基本的东西对于 C 和 C++ 是相同的
  • 如果你不知道什么是循环,我们可以recommend some beginners books
  • 谢谢你,这将是一个很好的阅读,但谢谢

标签: c++ arrays collect


【解决方案1】:

遍历数组,在每次迭代时检查元素是否在范围内(通过0.0 <= element && element <= 0.5),如果是,则递增计数器并将元素添加到总和:

float array[] = { 0.141573001, 0.129732453, 1.689353116, 1.445072308, 1.767702844, 1.967608838, 0.792822868, 1.836018189, 0.521325809, 1.242620743, 0.30556143, 1.45634, 1.340469519, 0.02216116, 0.030461417, 1.420794672, 0.700459128, 0.959538479, 0.716117771, 1.612446026};

size_t count = 0;
double sum = 0;
for (float element : array) {
    if (0.0 <= element && element <= 0.5) {
        ++count;
        sum += element;
    }
}
double average = sum / count;

Ideone

【讨论】:

  • 非常感谢,这解决了我的大部分问题,但它给我留下了一个问题,是否可以实现上面的代码来搜索 20 个数组,然后找到给定范围内的平均值?
  • 是的,有可能。请澄清一下,您有 20 个阵列,您需要 20 个平均值(每个阵列一个)还是只需要一个平均值?以及如何定义 20 个数组 (float arrays[][])?
  • 我有 20 个数组,我需要找到一个范围从 0.0 到 0.5 的平均值,并且我的数组定义如下:float array1[ ] 一直到 float array20 []。基本上我问我该怎么做我遍历所有数组并找到 0.0 到 0.5 之间的数字的平均值另外我非常感谢帮助
  • 为什么你的结构这么差?我认为你应该使用vector&lt;vector&lt;float&gt;&gt; 让事情变得更简单。
  • 感谢您教我并告诉我它是如何完成的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 2023-04-02
  • 2017-11-15
  • 2017-08-06
相关资源
最近更新 更多