下面是我自己写的一个计算数组平均值和方差的函数 运行时总是报错 请问错在哪里 我找了好久没找到
double __fastcall TTabelForm::DataProcess(double *matrix)
{
double result[2];
result[0]=0.0;
result[1]=0.0;
int count=sizeof(matrix)/8;//数组中元素的个数
//先计算行的平均值,放在result[0]中
for(int i=0;i<count;i++)//各行的和
{
result[0] += matrix[i];
}
result[0] = result[0]/count;//求平均值
//再计算方差,放在result[1]中。公式(Σ(Si-S均值)^2)/n
for(int j=0;j<count;j++)
{
result[1] += (matrix[j]-result[0])*(matrix[j]-result[0]);//求分子部分
}
result[1] = result[1]/count;
return *result;
}
4 个解决方案
#1
int count=sizeof(matrix)/8;//数组中元素的个数
并不能得到 数组中元素的个数
并不能得到 数组中元素的个数
#2
附议,C语言的的指针肯定不能这么用,建议楼主再多研究一下数组和指针。
#3
DataProcess(double *matrix)如果是数组,那么应该声明成这样
DataProcess(double matrix[], int length)
这样才是好的方式
DataProcess(double matrix[], int length)
这样才是好的方式
#4
int count=sizeof(matrix)/8;//数组中元素的个数
sizeof(matrix)得到的是matrix这个指针的大小即32位机的4个字节。
sizeof(matrix)得到的是matrix这个指针的大小即32位机的4个字节。
#1
int count=sizeof(matrix)/8;//数组中元素的个数
并不能得到 数组中元素的个数
并不能得到 数组中元素的个数
#2
附议,C语言的的指针肯定不能这么用,建议楼主再多研究一下数组和指针。
#3
DataProcess(double *matrix)如果是数组,那么应该声明成这样
DataProcess(double matrix[], int length)
这样才是好的方式
DataProcess(double matrix[], int length)
这样才是好的方式
#4
int count=sizeof(matrix)/8;//数组中元素的个数
sizeof(matrix)得到的是matrix这个指针的大小即32位机的4个字节。
sizeof(matrix)得到的是matrix这个指针的大小即32位机的4个字节。