"vector"的存储大小未知
storage size of "vector" isn't known
我得到 2 个错误:错误:"Vettore"的存储大小未知错误:"]"标记之前的预期主表达式
我不知道该尝试什么,因为我在编程方面很糟糕。
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
double funzione(double vettore[]);
int main()
{
double vettore[];
funzione(vettore[]);
}
double funzione(double vettore[])
{
int a;
cin >> a;
double somma = 0, media, risultato;
int i = -1;
for (i = 0; i < a; i++) {
cin >> vettore[i];
}
if (vettore[a] > 0) {
for (i = 0; i < a; i++) {
somma = somma + vettore[i];
}
media = somma / a;
}
else if (vettore[a] < 0) {
for (i = 0; i < a; i++) {
risultato = abs(vettore[i]);
somma = somma + risultato;
}
media = (somma / a) * (-1);
}
return media;
}
你的代码中有很多问题。您使用using namespace std;
.你应该避免它。在 C++ 代码中使用 c 样式标头。您应该使用 cmath
.你包括stdio.h
和stdlib.h
,但你不使用它。您应该将其删除。您正在尝试定义一个没有大小的数组。使用 stl 容器,如 std::array 或 std::vector。您正在读取a
元素,然后检查vettore[a]
是正数还是负数。这是越界的。 vettore[a - 1]
是最后一个元素。我在此代码中修复了所有这些要点。
#include <iostream>
#include <vector>
#include <cmath>
double funzione();
int main()
{
std::cout << funzione();
}
double funzione()
{
std::vector<double> vettore;
int a;
std::cin >> a;
double somma = 0, media, risultato;
for (int i = 0; i < a; i++) {
double value;
std::cin >> value;
vettore.emplace_back(value);
}
if (vettore[a - 1] > 0) {
for (int i = 0; i < a; i++) {
somma = somma + vettore[i];
}
media = somma / a;
}
else if (vettore[a - 1] < 0) {
for (int i = 0; i < a; i++) {
risultato = std::abs(vettore[i]);
somma = somma + risultato;
}
media = (somma / a) * (-1);
}
return media;
}
相关文章:
- 将字符串存储在c++中的稳定内存中
- std::原子加载和存储都需要吗
- C++:将控制台输出存储在宏中更好吗
- 如何存储未知次数迭代的输入?
- C++:将未知类型的对象存储为成员变量的类
- 获取由空格分隔的未知大小的单行输入,并将其存储到整数数组中
- typedef struct vs struct - "struct"的存储大小未知
- Eigen:如何将未知大小的矩阵存储为类中的成员
- "vector"的存储大小未知
- 让班级存储未知数据
- 存储大小未知
- 我正在尝试通过 Boost 图形库从 Graphviz DOT 文件中读取图形.如何读取存储在数组中的未知数量的属性
- 使用以前未知的模板存储通用对象
- 在输入过程中,将字符串存储在大小未知的向量中
- Swig-存储未知对象,直到下次调用C++函数
- 从未知数量的文件中存储数据
- c++存储指向未知类成员函数的指针
- 如何在数组中存储大量未知长度
- 如何在数组C++中存储未知数量的元素
- 在c++中存储未知大小的表