gpt4 book ai didi

c++ - 数组和引用传递

转载 作者:搜寻专家 更新时间:2023-10-31 01:31:48 25 4
gpt4 key购买 nike

我是编码新手,需要知道如何显示数组的最大值、最小值、平均值和新的标准化值。到目前为止,我的 max min 和 avg 都可以正常工作,但是我很困惑如何让我的函数显示数组的正确新值。重点是使用功能;xi'=(xi-min)/(max-min)我当前的代码如下:

#include <iostream>
using namespace std;

void normalizeMinMaxAvg(double data[], int size,double& min, double& max, double& avg)
{
max = 0;
min = 0;
int sum = 0;
int i;
avg = 0;

for (i = 0; i < size; i++) {
sum += data[i];
if ( max < data[i]) {
max = data[i];
}
if (min > data[i]) {
min = data[i];
}
}
avg = sum/size;

for (i = 0; i < size; i++){
data[i] = (data[i]-min)/(max-min);
}
}


int main()
{
double data[] = {-10.0,0.0,20.0,30.0,500.0};
double min, max, avg;

normalizeMinMaxAvg (data, 5, min, max, avg);
cout << "min = " << min << "\n";
cout << "max = " << max << "\n";
cout << "avg = " << avg << "\n";
cout << data;
return 0;
}

最佳答案

您的代码正确地更新了数组值。但是要正确显示数组值,请像这样使用 for 循环:

int arrSize = sizeof(data)/sizeof(data[0]);
for(int i =0; i<arrSize; ++i)
cout << data[i]<<" ";

或者,您可以像这样使用 vector 而不是原始数组:

vector<double> data ={-10.0,0.0,20.0,30.0,500.0};

并将其通过引用传递给您的函数。

关于c++ - 数组和引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44977801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com