首页 > 解决方案 > 如何计算单个元素在向量中所有元素之和中的百分比

问题描述

我有一个 vector<float>a = {1,2,3,4,5,6,7,8,9} ,对于每个元素,我想得到每个值在总和中的百分比。这意味着最终结果应该是 vector<float>b = {2.2%,4.4%,6.6%,8.8,11.1%,13.3%,15.6%,17.8%,20%}

数组的大小是不确定的。以上只是一个例子。

标签: c++vectorpercentage

解决方案


首先,您需要计算总数或总和:

float total = std::accumulate(a.begin(), a.end(), 0.0f);

接下来,您需要计算每个项目的百分比:

const unsigned int quantity = a.size();
for (unsigned int i = 0; i < quantity; ++i)
{
  float percentage = (a[i] * 100.0f) / total;
  cout << percentage << ", ";
}
cout << endl;

推荐阅读