求助!程序运行时总显示“指定内存不能为read” 希望好心人来帮帮我!!谢谢啊!!!
#include<stdio.h>void main()
{
int judge1(int a,int b,int c,int d);
int judge2(int a,int b,int c,int d);
int judge3(int a,int b,int c,int d);
int cmp(int x,int y);
int abx(int x);
int event[9][4],x1,x2,y1,y2,i,j,m,n,a,b,c,d,temp,temp1,temp2,sum,min=999999;
printf("输入每个区发生的应急事件次数\n");
for(j=0;j<5;j++)
for(i=0;i<10;i++)
scanf("%d",&event[i][j]);
for(x1=0;x1<=4;x1++)
for(y1=0;y1<=4;y1++)
for(x2=5;x2<=4;x2++)
for(y2;y2<=4;y2++)
{
sum=0;
for(m=0;m<=9;m++)
for(n=0;n<=4;n++)
{
if(judge1(x1,y1,x2,y2))
break;
if(judge2(x1,y2,m,n))
temp1=15*(abx(x1-m)+2)+20*(abx(y1-n)+2);
else
temp1=15*abx(x1-m)+20*abx(y1-n);
if(judge3(x2,y2,m,n))
temp2=15*(abx(x2-m)+2)+20*(abx(y2-n)+2);
else
temp2=15*abx(x2-m)+20*abx(y2-n);
temp=cmp(temp1,temp2);
sum=sum+event[m][n]*temp;
}
if(sum<min)
{
min=sum;
a=x1;
b=y1;
c=x2;
d=y2;
}
}
printf("最小的总响应时间为%d\n",min);
printf("选取的应急设施的位置为X(%d,%d)与Y(%d,%d)\n",a,b,c,d);
}
int judge1(int a,int b,int c,int d)
{
if(a==2&&b==1)
return(1);
else if(a==3&&b==1)
return(1);
else if(a==3&&b==2)
return(1);
else if(c==7&&d==2)
return(1);
else if(c==8&&d==2)
return(1);
else
return(0);
}
int judge2(int x,int y,int m,int n)
{
if(x<2&&m>3&&y>0&&y<3&&n>0&&n<3)
return(1);
else if(m<2&&x>3&&y>0&&y<3&&n>0&&n<3)
return(1);
else if(y==0&&n>=2&&x>1&&x<4&&m>1&&m<4)
return(1);
else if(n==0&&y>=2&&x>1&&x<4&&m>1&&m<4)
return(1);
else
return(0);
}
int judge3(int x,int y,int m,int n)
{
if(x<7&&m==9&&y==2&&n==2)
return(1);
else if(x==9&&m<7&&y==2&&n==2)
return(1);
else if(x>6&&x<9&&m>6&&m<9&&y<2&&n>2)
return(1);
else if(x>6&&x<9&&m>6&&m<9&&n<2&&y>2)
return(1);
else
return(0);
}
int cmp(int x,int y)
{
if(x<y)
return(x);
else
return(y);
}
int abx(int x)
{
if(x<0)
return(-x);
else
return(x);
}