C++ “的存储大小”;向量";isn';不知道
我有两个错误: 错误:“vettore”的存储大小未知 错误:在“]”标记之前应该有主表达式 我不知道该尝试什么,因为我编程很烂C++ “的存储大小”;向量";isn';不知道,c++,C++,我有两个错误: 错误:“vettore”的存储大小未知 错误:在“]”标记之前应该有主表达式 我不知道该尝试什么,因为我编程很烂 #include <iostream> #include <math.h> #include <stdio.h> #include <stdlib.h> using namespace std; double funzione(double vettore[]); int main() { double ve
#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;
}
#包括
#包括
#包括
#包括
使用名称空间std;
双倍funzione(双倍vettore[]);
int main()
{
双维托尔[];
funzione(vettore[]);
}
双funzione(双vettore[])
{
INTA;
cin>>a;
双somma=0,媒体,risultato;
int i=-1;
对于(i=0;i>维托雷[i];
}
如果(vettore[a]>0){
对于(i=0;i
您的代码中有许多问题。您使用使用名称空间std代码>。你应该避免。在C++代码中使用C样式的头文件。您应该使用cmath
。您包括stdio.h
和stdlib.h
,但不使用它。你应该移除它。您正在尝试定义没有大小的数组。使用类似于或的stl容器。您正在读取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;
}
#包括
#包括
#包括
双funzione();
int main()
{
std::cout>a;
双somma=0,媒体,risultato;
for(int i=0;i>值;
vettore.回装(价值);
}
如果(vettore[a-1]>0){
for(int i=0;i在C++中,数组需要在编译时有已知的大小。<代码>双VetOR[];<代码>可能想成为std::vectore代码>我知道,但是当我在数组中放入某种类型的值时,我得到了另一个|错误:无法将参数“1”的“double”转换为“double*”,您应该在发布之前格式化代码。您可以在代码中使用许多问题。您使用使用名称空间std代码>。你应该避免。在C++代码中使用C样式的头文件。您应该使用cmath
。您包括stdio.h
和stdlib.h
,但不使用它。你应该移除它。您正在尝试定义没有大小的数组。使用像或这样的stl容器。除了所有这些优点之外,还应该注意funzione
对于函数来说是个糟糕的名字。此外,将变量移动到最低范围<代码>i
不必在for
循环之外vettore
(也是一个糟糕的名字)不必在函数之外。@ThomasSablik:使用名称空间
不是在源文件中,而是在标题中,强烈建议不要使用它。@Raindrop7我已经修复了3个或更多的问题,其中唯一的问题是使用名称空间std主文件中的code>,以及名称来自命名空间std
的函数的新声明。对于初学者使用名称空间std代码>经常生成他们无法解决的错误。初学者不知道他们可以使用哪些函数名,以及该命名空间中已经使用了哪些函数名。只有当您知道忽略不使用使用命名空间的规则时,才可以使用使用命名空间
。