我是编码新手,需要知道如何显示我的数组的Max,Min,Avg和新的标准化值。到目前为止,我有最大最小值和平均值正常工作,但我对如何让我的函数显示数组的正确新值非常困惑。关键是要使用这个功能; XI'=(XI-分钟)/(最大值 - 最小值) 我目前的代码如下:
#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;
}
答案 0 :(得分:2)
您的代码正在更新数组值。但要正确显示数组值,请使用for loop
,如下所示:
int arrSize = sizeof(data)/sizeof(data[0]);
for(int i =0; i<arrSize; ++i)
cout << data[i]<<" ";
或者,您可以使用向量而不是像这样的原始数组:
vector<double> data ={-10.0,0.0,20.0,30.0,500.0};
并将by reference
传递给您的函数。
答案 1 :(得分:1)
如果你想&#34;打印出来&#34;你已经多次完成你需要迭代每个成员的数组:
for (int i = 0; i < array_size; i++){
cout << data[i] << "\n";
}
您目前正在做什么:
cout << data;
只需打印数组的地址。
答案 2 :(得分:0)
$(document).ready(function(){
$(document).on("change keyup mouseup", "#tag_content", function(){
$("#tag_keyword").val($("#tag_content").val());
});
});
只保存数组的地址,在您的情况下,它是指向data
的指针,您需要迭代数组并单独打印出每个值。