大家帮我看 下 为什么数组返回不对呀
#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];
}
}
}
}
}
求大家帮忙 小弟感激万分 我实在是没有办法了