请高手回答,为何e<1,没有输出???想了解迭代次数,但是不行啊,求解
#include<stdio.h>#include<stdlib.h>
#include<math.h>
#define M 10
#define N 10
void main()
{
float x1,x2,x3,x4,e;
printf("请输入边界温度左:x1,右:x2,下:x3,上:x4 \n");
scanf("%f%f%f%f",&x1,&x2,&x3,&x4);
printf("请输入节点精度e:");
scanf("%f",&e);
float T[M][N],Tcopy[M][N];
int i,j; long k=1;
for(i=1;i<M-1;i++)
{
T[i][0]=Tcopy[i][0]=x1;
T[i][N-1]=Tcopy[i][N-1]=x2;
}
for(j=0;j<N;j++)
{
T[0][j]=Tcopy[0][j]=x4;
T[M-1][j]=Tcopy[M-1][j]=x3;
}
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
T[i][j]=Tcopy[i][j]=0.25*(x1+x2+x3+x4);
float dif[M][N],max;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
dif[i][j]=1.0;
//float e=2.5;
//for(k=1;k<10000;k++)
//{
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
T[i][j]=0.25*(T[i-1][j]+T[i+1][j]+T[i][j-1]+T[i][j+1]);
for(i=1;i<M-1;i++)
dif[i][j]=fabs(T[i][j]-Tcopy[i][j]);
max=dif[1][1];
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
{if(max<dif[i][j])
max=dif[i][j];
}
//if(max<=e) break;
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
Tcopy[i][j]=T[i][j];
//}
while(max>=e)
{ for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
T[i][j]=0.25*(T[i-1][j]+T[i+1][j]+T[i][j-1]+T[i][j+1]);
for(i=1;i<M-1;i++)
dif[i][j]=fabs(T[i][j]-Tcopy[i][j]);
max=dif[1][1];
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
{ if(max<dif[i][j])
max=dif[i][j];
}
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
Tcopy[i][j]=T[i][j];
k++;
}
for(i=0;i<N;i++)
for(j=0;j<M;j++)
printf("%8.1f",T[i][j]);
if((j+1)%N==0) printf("\n");
printf("\n");
printf("迭代次数k=%d\n",k);
}