Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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++计算数据文件的平均值和方差_C++_Arrays - Fatal编程技术网

用C++计算数据文件的平均值和方差

用C++计算数据文件的平均值和方差,c++,arrays,C++,Arrays,我想通过传递一个函数作为参数,计算从array.dat文件中输入的数组的偏差方差。dat数据为8 5 12 6 13 11 9 7 10 14。我需要定义函数float var float,int;并修改函数float sum float float,int,int,ints;完成方差计算程序。我还想使用相同的函数sum来计算平均值,而不是在单独的循环中计算平均值。我有一个使用全局变量或调用sumNULL的提示,在sum中 以下是我到目前为止的代码。我得到的平均输出是正确的,显然没有差异。我想我

我想通过传递一个函数作为参数,计算从array.dat文件中输入的数组的偏差方差。dat数据为8 5 12 6 13 11 9 7 10 14。我需要定义函数float var float,int;并修改函数float sum float float,int,int,ints;完成方差计算程序。我还想使用相同的函数sum来计算平均值,而不是在单独的循环中计算平均值。我有一个使用全局变量或调用sumNULL的提示,在sum中

以下是我到目前为止的代码。我得到的平均输出是正确的,显然没有差异。我想我在这里至少有一些问题,我可以帮忙

我需要将array.dat前面的数组引入到我的计算中,我不确定我的代码是否正在这样做。相反,我认为我的代码可能只是引用代码本身中声明的数组,而不是提取文件。 我需要使用array.dat来获得求和,以便找到平均值,然后我需要获得方差。 任何帮助都将不胜感激。以下是迄今为止我得到的代码:

//variance.cpp
#include<iostream>
#include<fstream>
using namespace std;
float sum (float (*) (float, int), int*, int s);
float var (float, int);
int main()
{
ifstream inFile;
inFile.open("array.dat");
int a[10] = {8,5,12,6,13,11,9,7,10,14}; // input from array.dat instead
int s = (sizeof a)/4;

cout << "Mean = " << sum(NULL, a, s) << endl;
cout << "Variance = " << sum(var, a, s) << endl;
cout << "\n\n\nPress any key to close console window: ";
char c; cin >> c;
return 0;
}

float sum (float (*pf) (float, int), int *n, int s) {
float sum=0; int *p=n;
for (int i=0; i<s; i++) {
if (pf == NULL) sum+= *p;
else sum+= (*pf)(sum, *p);
p++;
}
return sum/s; //calculates and outputs mean
}
float var (float mean, int k)

{
return 0;
}

是关于如何从文本文件中读取数字的开始。缩进。这不仅仅是早餐。谢谢@ OldProgrammer,这对C++和C++都有好处:FSCANF对C++有好处。可能比较慢,所以经常使用fscanf。对于这样一个简单的任务来说,这似乎太复杂了。如果varfloat,int是一个纯函数,那么你所展示的形式中的数量n*variancen数字没有递归关系,因此你必须以某种方式欺骗,比如像你的提示所说的那样使用一个全局变量,当你这样做的时候,对你的主函数中的代码进行明显无辜的重新排列可能会产生非常令人惊讶的结果。除了varfloat的主体,int,您可以更改代码的哪些部分,为什么不能更改其他部分?这是部分完成的家庭作业吗?