Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “的存储大小”;向量";isn';不知道_C++ - Fatal编程技术网

C++ “的存储大小”;向量";isn';不知道

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

我有两个错误: 错误:“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;
}
#包括
#包括
#包括
#包括
使用名称空间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,以及名称来自命名空间
std
的函数的新声明。对于初学者
使用名称空间std经常生成他们无法解决的错误。初学者不知道他们可以使用哪些函数名,以及该命名空间中已经使用了哪些函数名。只有当您知道忽略不使用
使用命名空间的规则时,才可以使用
使用命名空间