首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

定义一个函数,对数组的值进行错误判断后返回数组的平均值

2013-11-11 
定义一个函数,对数组的值进行异常判断后返回数组的平均值我想定义一个函数,给一个大小为5的数组赋值,赋的

定义一个函数,对数组的值进行异常判断后返回数组的平均值
我想定义一个函数,给一个大小为5的数组赋值,赋的值是一个实时变化的电流值,然后求出这5个值中最大值与最小值的差值,如果差值小于2,就求出他们的平均值并返回这个平均值,如果最大值与最小值差值大于等于2,就清空所赋的值,重新赋5个值,再进行最大最小值差值判断,如果连续三次差值都大于2则返回0
全局
int iCount = 3;
#define Number 5;
Avalue[5] = {0.0,0.0,0.0,0.0,0.0};
double Average()
{
        int i=0, j=0, k=0, m=0;
double Max = 0,Min = 0;
double sum=0;
double ave=0;
while(iCount>0)
{
iCount--;

for(i=0; i<Number; i++)
{
Sleep(50);
Avalue[i] = v.value;  //v.value是从另外一个线程读取到的实时变化的电流值
}

Max=Min=fvalue[0];
for(j=0; j<Number; j++)
{
if(Max<Avalue[j])
{
Max=Avalue[j];
}
if(Min>Avalue[j])
{
Min=Avalue[j];
}
}

if((Max-Min)<2)
{
for(k=0;k<Number;k++)
{
sum+=Avalue[k];
}
ave=sum/5;
}
else
{
for(m=0; m<Number; m++)
{
Avalue[m] = 0.0;
}
}
}

return ave; 
}
XXX(XXX) //另外一个函数
{
   current=Average();  //将求出的平均值当成最后的电流值
}
程序目前写成这样了,写的有问题而且不完整,不知道怎么写下去了,求大神们帮帮忙!!!拜谢
[解决办法]
int iCount = 0;
#define Number 5;
int index = 0;
double Avalue[5] = {0.0,0.0,0.0,0.0,0.0};
void bubbleSort(double *a,  int n)
{
    bool flag = true;
    for(int i = 0; i < n - 1 && flag; i++)
    {
        for(int j = n - 1, flag = false; j > i; j--)
        {
            if (a[j] < a[j - 1])
            {
                double temp = a[j];
                a[j] = a[j - 1];
                a[j - 1] = temp;
                flag = true;
            }
        }
    }
}

double sampleFinish()
{
//数据填充满
if (index == Number)
{
index = 0;//开始下一轮采样
//将数据从小大到排序
bubbleSort(Avalue,  Number);
double maxDiff = Avalue[Number - 1] - Avalue[0];
if (maxDiff < 2)
{
iCount = 0;
double sum = 0;
for (int i = 0; i < Number; i++)
{
sum += Avalue[k];
}
return sum / Number;
}
else
{
if (maxDiff > 2)
iCount++;
else
iCount = 0;
}
}
//表示无效返回
return -1.0;
}


void sample()
{
while(iCount < 3)
{
if (index < Number)
{
   Sleep(50);
   Avalue[index++] = v.value;//value是从另外一个线程读取到的实时变化的电流值
}
double result = sampleFinish();
//对结果处理

}
}

热点排行