C++ 无法转换'int*';至“浮动*'”;对于参数'1';至`浮动平均值(浮动*,浮动)'; #包括 #包括 #包括 使用名称空间std; 浮点数平均值(浮点数[],浮点数n) { int i; 浮点数和=0; 对于(i=0;i n; 最小元素=n-1; int i,j,num[n]; 浮子温度; 浮动f; 对于(i=0;i>f; 回推次数(f); } cout

C++ 无法转换'int*';至“浮动*'”;对于参数'1';至`浮动平均值(浮动*,浮动)'; #包括 #包括 #包括 使用名称空间std; 浮点数平均值(浮点数[],浮点数n) { int i; 浮点数和=0; 对于(i=0;i n; 最小元素=n-1; int i,j,num[n]; 浮子温度; 浮动f; 对于(i=0;i>f; 回推次数(f); } cout,c++,C++,第一件事: #include <iostream> #include <vector> #include <numeric> using namespace std; float mean (float num[], float n) { int i; float sum=0; for(i=0;i<n;i++) sum=sum+num[i]; return (sum/n); } int main() {

第一件事:

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

float mean (float num[], float n)
{
    int i;
    float sum=0;
    for(i=0;i<n;i++)
    sum=sum+num[i];
    return (sum/n);

}
int main()  
{

    int minusElements;  
    int n;
    cout << "Enter number of Elements:";  
    cin >> n;



    minusElements = n - 1  ;
    int i,j, num[n];  
    float  temp;

    float f;
    for(i=0;i<n;i++)  
    {
    cin >> f;
    num.push_back(f);
    }


    cout << "Enter " << n << " numbers:\n";
    for(i=0;i<n;i++)  
    cin >> num[i];
    cin.get();
    float m = mean(&num[0], num.size());


}  

//33 request for member `push_back' in `num', which is of non-class type `int[((unsigned int)((int)n))]' 

//41 request for member `size' in `num', which is of non-class type `int[((unsigned int)((int)n))]' 
<标准> C++中不允许这样做。它的可变长度数组(VLA)从<代码> NoMasks<代码>不是<代码> const < /C>表达式。VLA仅允许在C99。< /P>
除此之外,您的
mean()
函数实现错误。什么是
numElements
?它是一个未初始化的变量,您正在
for
循环中使用它。这会调用未定义的行为。解决方案是:您不需要从
numElements
开始。只需使用传递给函数作为参数的
n


也可以,在C++中,你甚至不需要函数来计算平均值,你可以使用<代码> <代码>的函数为:

cout << "Mean:"<< mean(num,n);
#include <vector> //must include this!

std::vector<float> num;

float f;
for(i=0;i<numElements;i++)  
{
  cin >> f;
  num.push_back(f);
}

//then call mean() as
float m = mean(&num[0], num.size());
输出:

6
12 89 23 12 32 11
6
12 89 23 12 32 11
在线演示:

不推荐C++中的C风格编码,但只适合学习目的。
C++中的C++风格编码 输出:

6
12 89 23 12 32 11
6
12 89 23 12 32 11
在线演示:

希望这两种方式都能帮助您理解问题和解决方案。

首先:

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

float mean (float num[], float n)
{
    int i;
    float sum=0;
    for(i=0;i<n;i++)
    sum=sum+num[i];
    return (sum/n);

}
int main()  
{

    int minusElements;  
    int n;
    cout << "Enter number of Elements:";  
    cin >> n;



    minusElements = n - 1  ;
    int i,j, num[n];  
    float  temp;

    float f;
    for(i=0;i<n;i++)  
    {
    cin >> f;
    num.push_back(f);
    }


    cout << "Enter " << n << " numbers:\n";
    for(i=0;i<n;i++)  
    cin >> num[i];
    cin.get();
    float m = mean(&num[0], num.size());


}  

//33 request for member `push_back' in `num', which is of non-class type `int[((unsigned int)((int)n))]' 

//41 request for member `size' in `num', which is of non-class type `int[((unsigned int)((int)n))]' 
<标准> C++中不允许这样做。它的可变长度数组(VLA)从<代码> NoMasks<代码>不是<代码> const < /C>表达式。VLA仅允许在C99。< /P>
除此之外,您的
mean()
函数实现错误。什么是
numElements
?它是一个未初始化的变量,您正在
for
循环中使用它。这会调用未定义的行为。解决方案是:您不需要从
numElements
开始。只需使用传递给函数作为参数的
n


也可以,在C++中,你甚至不需要函数来计算平均值,你可以使用<代码> <代码>的函数为:

cout << "Mean:"<< mean(num,n);
#include <vector> //must include this!

std::vector<float> num;

float f;
for(i=0;i<numElements;i++)  
{
  cin >> f;
  num.push_back(f);
}

//then call mean() as
float m = mean(&num[0], num.size());
输出:

6
12 89 23 12 32 11
6
12 89 23 12 32 11
在线演示:

不推荐C++中的C风格编码,但只适合学习目的。
C++中的C++风格编码 输出:

6
12 89 23 12 32 11
6
12 89 23 12 32 11
在线演示:


希望它能帮助您理解这两种风格的问题和解决方案。

将int-num[numElements]更改为float-num[numElements]?您正在向需要浮点数组的对象发送一个int数组。

将int-num[numElements]更改为float-num[numElements]?您正在向需要浮点数组的对象发送一个整数数组。

根据此问题的标题,我相当确定您的问题在于这行:

29.8333
你的意思是:

int num[numElements], i,j,temp;

您似乎还有一个额外的
(i=0;i基于此问题的标题,我相当确定您的问题在于这一行:

29.8333
你的意思是:

int num[numElements], i,j,temp;

您似乎还有一个额外的
(i=0;i请缩进您的代码(这更有可能让人们想回答),并在正文中包含以下内容:此代码的目标是什么,您尝试了什么,以及什么不起作用。我在
mean
@Chris中看到未初始化的变量,我修复了代码缩进,但在这样做的过程中,我发现了一个没有
{}的大型代码嵌套(如
for
循环)
大括号,这使得我很难确定什么是故意嵌套的代码,什么不是。约翰:如果你能添加
{}
大括号,这样我们就知道什么代码应该嵌套,什么代码不应该嵌套。请缩进你的代码(这更可能让人们想回答),并在正文中包含以下内容:此代码的目标是什么,您尝试了什么,以及什么不起作用。我在
mean
@Chris中看到未初始化的变量,我修复了代码缩进,但在这样做的过程中,我发现了一个没有
{}的大型代码嵌套(如
for
循环)
周围的大括号,这使得我很难确定什么是故意嵌套的代码,什么不是。约翰:如果你能添加
{}<代码>括号,这样我们就知道应该嵌套什么代码,而代码不应该是什么。他可能使用一个允许你这样做的代码,从标题中可以看出他有一个问题,把一个int数组传递给一个需要浮点数组的函数。虽然他应该修正他的问题……我只是C++中的新手。约翰:没问题。你将学习C++的毕业论文。在这种情况下,您甚至不需要
mean()
函数。再次查看我的答案。我解释了如何从
标题使用
std::acculate
函数。@Nawaz:先生,我们可以从头开始吗?@Nawaz:关于函数的平均值。我真的不明白。如果你同意的话,先生?他可能正在使用一个允许你这样做的函数,从标题你可以看到hE把一个int数组传递给一个函数,它需要一个浮点数组。虽然他应该修正他的问题……我只是C++中的新手。约翰:没问题。你将逐渐学习C++。在这种情况下,你甚至不需要<代码>均值()。
函数。再次查看我的答案。我解释了如何从
标题使用
std::acculate
函数。@Nawaz:先生,我们可以从头开始吗?@Nawaz:关于平均值函数。我真的不明白。先生,你同意吗?