大家帮我看 下 为什么数组返回不对呀   
#include "stdio.h"
#define WIDTH 256
#define HEIGHT 256
long NowStep;
long Step;
double Tau=0.55;
double Den[WIDTH][HEIGHT];
double Vel[WIDTH][HEIGHT][2];
double fStar[WIDTH][HEIGHT][9];
double flat [WIDTH][HEIGHT][9];
double feq[WIDTH][HEIGHT][9];
int Prjx[9]={0,1,1,0,-1,-1,-1, 0, 1};
int Prjy[9]={0,0,1,1, 1, 0,-1,-1,-1};
double Coe[]={0.4444444444444444444444444,
              0.1111111111111111111111111,
              0.0277777777777777777777778,
              0.1111111111111111111111111,
              0.0277777777777777777777778,
           0.1111111111111111111111111,
           0.0277777777777777777777778,
           0.1111111111111111111111111,
              0.0277777777777777777777778};
double DotMet[WIDTH][HEIGHT][9];
void Init();
void main()
{
 int x,y,z;
 Init();
{
for(x=0;x<WIDTH;x++)
  {
   for(y=0;y<HEIGHT;y++) 
   {
    for(z=0;z<9;z++)
   {
    double  Collide();
    printf("%f\n" ,flat[x][y][z]);
   }
  
  }  
  
  }   
   
}
}
double Collide(int x,int y,int k)
{
 
    int Fx;
    int Fy;
    
  for(x=0;x<WIDTH;x++)
  {
   
   for(y=0;y<HEIGHT;y++)
   {
   for(k=0;k<9;k++)
   {
   Fx=x+Prjx[k];
   Fy=y+Prjy[k];
if(Fx>0&&Fx<WIDTH-1&&Fy>0&&Fy<HEIGHT-1)
  {
   
   DotMet[Fx][Fy][k]=Prjx[k]*Vel[Fx][Fy][1]+Prjy[k]*Vel[Fx][Fy][2];
   feq[Fx][Fy][k]=Den[Fx][Fy]*Coe[k]*(1+4.5*DotMet[Fx][Fy][k]*DotMet[Fx][Fy][k]
    -1.5*(Vel[Fx][Fy][1]*Vel[Fx][Fy][1]+Vel[Fx][Fy][2]*Vel[Fx][Fy][2]));
   flat[Fx][Fy][k]=(1-1.0/Tau)*(fStar[x][y][k])+(feq[x][y][k])/Tau;
  return flat[Fx][Fy][k];
  }
  }
  }
  }
 
  
}
void Init()
{
   int x,y,z;
  
  {
  for(x=0;x<WIDTH;x++)
  {
   for(y=0;y<HEIGHT;y++)  
   {
     Den[x][y]=1;
     Vel[x][y][1]=0;
     Vel[x][y][2]=0;
 for(z=0;z<9;z++)
 {
     DotMet[x][y][z]=Prjx[z]*Vel[x][y][1]+Prjy[z]*Vel[x][y][2];
  feq[x][y][z]=Den[x][y]*Coe[z]*(1+4.5*DotMet[x][y][z]*DotMet[x][y][z]
  -1.5*(Vel[x][y][1]*Vel[x][y][1]+Vel[x][y][2]*Vel[x][y][2]));
  
     fStar[x][y][z]=feq[x][y][z];
}
       
   }
}
}
}
求大家帮忙 小弟感激万分 我实在是没有办法了  



											
	    

	