C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 315|回复: 0

C++菜鸟请教大家一个问题。很菜的问题。 [复制链接]

Rank: 1

主题
0
帖子
1
C币
2 枚
在线时间
0 小时
发表于 2010-8-13 13:28:16 |显示全部楼层
最近学习用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就麻烦了。。

有高手指点一下吗。我应该怎么改,才能实现求积?
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-7 23:12

©2009-2011 cyuyan.com.cn

回顶部