运行不对,不知道那块出错了

题目:在n*n的格子上有m块地毯(n<=50,m<=100)。输入m和n,在输入两个对角的坐标(x1,y1)和(x2,y2),其中x1,y1)和(x2,y2)分别为地毯的左上角和右下角。问最后一个格子每个点被多少块地毯覆盖。



```c
#include<stdio.h> 
#define MAXN 100
int main()
{
int i,j,k,x1,x2,y1,y2,n,m;
int a[MAXN][MAXN];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<n;j++){
a[i][j]=0;
     }
  for(i=0;i<m;i++){
      scanf("%d%d%d%d",&x1,&y2,&x2,&y2);
       for(j=x1;j<=x2;j++){
         for(k=y1;k<=y2;k++){
             a[j][k]++;
         }
  }
       }
   for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                printf("%d",a[i][j]);
            }
        printf("\n"); 
   }
   return 0;
}

```

这个代码没问题呀
25行输出的时候最好给数据之间加上分隔符,比如空格:
printf("%d ",a[i][j]);

img