小弟我想在OnTimer函数中计算一个离散化后的微分方程组,小弟我的想法是定时器每20ms刷新一次,那么OnTimer中的程序就执行一次,那么得到的变量就是新的

我想在OnTimer函数中计算一个离散化后的微分方程组,我的想法是定时器每20ms刷新一次,那么OnTimer中的程序就执行一次,那么得到的变量就是新的
如题,然后我的另外程序就可以不停的调用这些新解出来的变量,但我运行后感觉这些变量没有变化。大家帮忙看看,给点意见。变量都已定义,运行没错,就是想法估计有错。
void CKetishiyan4View::OnTimer(UINT nIDEvent)  
{
 // TODO: Add your message handler code here and/or call default
 ///////////////////////////////////////////////////////////////////////////
 // 添加定时器响应函数和厂家更新函数
Invalidate(FALSE);
  ///////////////////////////////////////////////////////////////////////////
 x[0]=10;y[0]=10;z[0]=12;
 k1=(-3)*x[0]+2*y[0];
 m1=(-2.667)*x[0]-10.333*y[0]-0.667*z[0];
 n1=(-6.667)*x[0]-5.333*y[0]-4.667*z[0];

 k2=(-3)*(x[0]+k1*(h/2.0))+2*(y[0]+m1*(h/2.0));
 m2=(-2.667)*(x[0]+k1*(h/2.0))-10.333*(y[0]+m1*(h/2.0))-0.667*(z[0]+n1*(h/2.0));
 n2=(-6.667)*(x[0]+k1*(h/2.0))-5.333*(y[0]+m1*(h/2.0))-4.667*(z[0]+n1*(h/2.0));
   
  k3=(-3)*(x[0]+k2*(h/2.0))+2*(y[0]+m2*(h/2.0));
 m3=(-2.667)*(x[0]+k2*(h/2.0))-10.333*(y[0]+m2*(h/2.0))-0.667*(z[0]+n2*(h/2.0));
 n3=(-6.667)*(x[0]+k2*(h/2.0))-5.333*(y[0]+m2*(h/2.0))-4.667*(z[0]+n2*(h/2.0));

 k4=(-3)*(x[0]+k3*(h/2.0))+2*(y[0]+m3*(h/2.0));
  m4=(-2.667)*(x[0]+k3*(h/2.0))-10.333*(y[0]+m3*(h/2.0))-0.667*(z[0]+n3*(h/2.0));
 n4=(-6.667)*(x[0]+k3*(h/2.0))-5.333*(y[0]+m3*(h/2.0))-4.667*(z[0]+n3*(h/2.0));

 x[1]=x[0]+h*(k1+2*k2+2*k3+k4)/6.0;
  y[1]=y[0]+h*(k1+2*k2+2*k3+k4)/6.0;
 z[1]=z[0]+h*(k1+2*k2+2*k3+k4)/6.0;

 x[0]=x[1];
 y[0]=y[1];
 z[0]=z[1];
 CView::OnTimer(nIDEvent);
}

------解决方案--------------------
UINT m_TimeHandle;//在头文件里定义
m_TimeHandle=SetTimer(1,1000,NULL);//在CPP文件里的初始化函数里
void CKetishiyan4View::OnTimer(UINT nIDEvent)
{
if(nIDEvent==m_TimeHandle)
{
Invalidate(FALSE);
///////////////////////////////////////////////////////////////////////////
x[0]=10;y[0]=10;z[0]=12;
......

}
CView::OnTimer(nIDEvent);

}
------解决方案--------------------
x[0]=10;y[0]=10;z[0]=12;
每次执行都是赋给这些变量定值,是不是不该这么做。应该把它们在初始化函数里
------解决方案--------------------
你调试跟踪一下不就知道问题出在哪里了吗