C++菜鸟请教大家如何实现求积?
最近学习用C++编DLL,以供大智慧调用,碰到的问题如下。__declspec(dllexport) int WINAPI MYMAVOL(const CALCINFO* pCalcInfo)
{
float fTotal;
int nPeriod,i,j;
if (pCalcInfo->m_pfParam1==NULL || //参数1有效?
pCalcInfo->m_nParam1Start>=0 || //参数1为常数?
pCalcInfo->m_pfParam2) //仅有一个参数?
return -1;
nPeriod = (int)*pCalcInfo->m_pfParam1; //参数1
if (nPeriod < 2) //参数1合法?
return -1;
for(i=nPeriod-1;i<pCalcInfo->m_nNumData;i++) //计算nPeriod周期的均线,数据
{ //从nPeriod-1开始有效
fTotal = 0.0f;
for(j=0;j<nPeriod;j++) //累加
fTotal += pCalcInfo->m_pStkData[i-j].m_fVolume;
pCalcInfo->m_pResultBuf[i] = fTotal/nPeriod; //平均
}
return nPeriod-1;
}
====================其中这一段
fTotal = 0.0f;
for(j=0;j<nPeriod;j++) //累加
fTotal += pCalcInfo->m_pStkData[i-j].m_fVolume;
pCalcInfo->m_pResultBuf[i] = fTotal/nPeriod; //平均
=========================================
这是求和的程序段。。。。。我想变成求积的公式段。于是就做了如下修改。
fTotal = 0.0f;
for(j=0;j<nPeriod;j++) //累加
fTotal *= pCalcInfo->m_pStkData[i-j].m_fVolume;
pCalcInfo->m_pResultBuf[i] = fTotal/nPeriod; //平均
但是结果不对。。我怀疑是fTotal = 0.0f;这个变量付值的的问题。
因为求和可以是累加0也没关系。但是求积,累乘0就麻烦了。。
有高手指点一下吗。我应该怎么改,才能实现求积?