显示矢量值

Displaying Vector Value

本文关键字:显示      更新时间:2023-10-16

我正在尝试将向量的所有值相加并获得平均值,但我收到错误消息。

这是我的任务方向,以便你们更好地理解

1)接受用户的15个等级进入载体

超高级挑战和要求:

当且仅当数字大于 0.00 时,才接受该数字。接受数字当且仅当,它是有效的双精度类型。也就是说,在将值填充到向量之前,您每次都以这种方式进行验证?

2)将数字接受到向量中后,计算并显示输入的15个数字的平均值。

3) 使用气泡排序(或向量原生的其他方法/算法),将数组中的 15 个数字从最大到最小排序。提示:向量没有内置的排序方法吗?我们如何让向量按照此处的要求进行降序排序,而不是标准的交配?

4)显示排序的成绩矢量

以下是错误消息:

main.cpp:43:10: error: use of undeclared identifier 'sum'
sum = accumulate(gradesVector[i].begin(), gradesVector[i].end(), 0);
^
main.cpp:43:42: error: member reference base type 'value_type' (aka 'double') is not a structure or union
sum = accumulate(gradesVector[i].begin(), gradesVector[i].end(), 0);
~~~~~~~~~~~~~~~^~~~~~
main.cpp:43:67: error: member reference base type 'value_type' (aka 'double') is not a structure or union
sum = accumulate(gradesVector[i].begin(), gradesVector[i].end(), 0);
~~~~~~~~~~~~~~~^~~~
main.cpp:44:10: error: use of undeclared identifier 'average'
average = sum/15;
^
main.cpp:44:20: error: use of undeclared identifier 'sum'
average = sum/15;
^
main.cpp:46:18: error: use of undeclared identifier 'average'
cout << average;

代码如下:

vector<double> gradesVector;
gradesVector.reserve(15);

for(vector<double>::size_type i = 0; i < 15; i++)
{
int c=0;       
do
{
if(c!=0)   
cout << "Invalid Rage. Please Enter Range 0-100:n";         
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
c++;   
}
while(gradesVector[i] < 0.0 || gradesVector[i] > 100.0);
sum = accumulate(gradesVector[i].begin(), gradesVector[i].end(), 0);
average = sum/15;
cout << average;
}

这就是答案

我忘了使用#include <numeric>

代码现在读取

vector<double> gradesVector(15);
double sum;
double average;
for(vector<double>::size_type i = 0; i < 15; i++)
{
int c=0;       
do
{
if(c!=0)   
cout << "Invalid Rage. Please Enter Range 0-100:n";         
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
c++;   
}
while(gradesVector[i] < 0.0 || gradesVector[i] > 100.0);

这行代码使用#include <numeric>我还更改了gradesVector[i].begin()gradesVector[i].end()gradesVector.begin()gradesVector.end()

sum = accumulate(gradesVector.begin(), gradesVector.end(), 0); 
average = sum/15;

}
cout << average;