fatal error C1004: unexpected end of file found的问题
#include<math.h>
#include<stdio.h>
void main()
{
int i,j,m1,n1,m2,n2,x,y;
double a[720][576],max,p1,HM1,HM2,PHM2,PM[720][576],HM[720][576],MaxV,MinValue,Edge,HM3,msum;
FILE *cp;
if((cp=fopen("shiyan33.bmp","rb"))==NULL)
printf("orignal file can not be opened.");
else
{ for(j=0;j<=576;j++)
{
for(i=0;i<=720;i++)
{
fread(&a[i][j],1,1,cp);
}
}
fclose(cp);
}
if((cp=fopen("shiyanjieguo.bmp","wb"))==NULL)
printf("save file can not be opened.");
else
{ max=a[0][0];
for(j=0;j<576;j++)
for(i=0;i<720;i++)
{
if(a[i][j]>max)
max=a[i][j];
}
//模糊变换
for(j=0;j<576;j++)
for(i=0;i<720;i++)
{
if (a[i][j]<=74)
{
p1 = (a[i][j]/74)*(a[i][j]/74);
if (p1<= 0.9) p1 = 2*(p1*p1);
HM1 = fabs((sqrt(p1))*74);
HM2 = (HM1/74)*(HM1/74);
if (HM2 >= 0.9)
{
HM2 = 1 - 2*(1 - HM2)*(1 - HM2);
}
PHM2 = fabs((sqrt(HM2))*74);
}
else
{
p1 = (a[i][j]/max)*(a[i][j]/max);
if (p1 <= 0.9) p1 = 2*(p1*p1);
HM1 = fabs((sqrt(p1))*max);
HM2 = (HM1/max)*(HM1/max);
if (HM2 >= 0.9) HM2 = 1 - 2*(1 - HM2)*(1 - HM2);
PHM2 = fabs((sqrt(HM2))*max);
}
PM[i][j]=PHM2;
HM[i][j]=HM2;
}
for(j=1;j<575;j++)
for(i=1;i<719;i++)
{
msum=0;
for(y=-1;y<=1;y++)
for(x=-1;x<=1;x++)
{
msum = msum + PM[i+x][j+y];
}
PM[i][j] = (msum - PM[i][j])/8;
}
for(j=0;j<576;j++)
for(i=0;i<720;i++)
{
if(PM[i][j]<=160 && PM[i][j]>=80)
{
if((a[i][j])<=74)
{
HM3=fabs((PM[i][j]/74)*(PM[i][j]/74));
if (HM3 <= 0.9) HM3 = 2*HM3*HM3;
else HM3 = 1-2*(1-HM3)*(1-HM3);
}
if(PM[i][j]>=80 && PM[i][j]<=120) //反变换
{
if(a[i][j]<=74) PM[i][j]= 0-((sqrt(HM3))*74);
else PM[i][j]= 0-((sqrt(HM3))*max);
}
if(PM[i][j]>=120 && PM[i][j]<=160)
{
if(a[i][j]<=74) PM[i][j]=((sqrt(HM3))*74);
else PM[i][j]=((sqrt(HM3))*max);
}
}
for(j=1;j<575;j++)
for(i=1;i<719;i++)
{
double mRec[3][3]={{PM[i-1][j-1],PM[i][j-1],PM[i+1][j-1]},{PM[i-1][j],PM[i][j],PM[i+1][j]},{PM[i-1][j+1],PM[i][j+1],PM[i+1][j+1]}};
mRec[2][2]=mRec[1][1];
MaxV=mRec[0][0];
for(m1=0;m1<=2;j++)
for(n1=0;n1<=2;i++)
{
if(mRec[m1][n1]>MaxV) MaxV=mRec[m1][n1];
}
MinValue=mRec[0][0];
for(m2=0;m2<=2;j++)
for(n2=0;n2<=2;i++)
{
if(mRec[m2][n2]<MinValue)
MinValue=mRec[m2][n2];
}
Edge=(MaxV-MinValue);
fwrite(&Edge,1,1,cp);
}
}
fclose(cp);
printf("\n文件已输出至linear_zoom.raw\n");
return;
}