我的任务是编写一个函数,该函数将一个双精度数组、数组的大小以及 3 个称为 min、max 和 avg 的传递引用参数作为参数。我的函数必须:处理数组数据以找到最小值(min),最大值(max),并计算平均值(avg),每个都分配给相应的参考参数,以便调用函数能够看到这些值。我对编码相当陌生,并且对我的错误是下面包含的主要功能感到非常困惑,任何帮助将不胜感激。
#include <iostream>
using namespace std;
void normalizeMinMaxAvg(double data[], int size,double& min, double&
max, double& avg)
{
max = 0;
min = 0;
//int amount = size;
int count = 0;
int sum = 0;
int i;
avg = 0;
for (i=0; i < size; i++)
{
count++;
sum += i;
if ( i > max)
{
i=max;
}
else if (i < min)
{
i=min;
}
}
avg = sum/count;
}
int main ()
{
double data[]={10.0,0.0,20.0,30.0};
cout << normalizeMinMaxAvg (data, 4, min, max, avg);
return 0;
}
原文由 Mitchell Lawlor 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的代码有几个问题。您需要了解在 C++ 中 通过引用传递参数的 工作原理。
normalizeMinMaxAvg
不返回任何东西 - 注意void
返回类型 - 它修改了 3 个已经存在的main
double
变量,所以如果你要调用它---
你必须定义这些变量。你的
normalizeMinMaxAvg
函数也有问题: