#include<stdio.h>
#include<math.h>
#define  k 10

int add(int a[][k],int b[][k],int c[][k],int m){
    int i,j;
    for(i=0;i<m;i++)
        for(i=0;j<m;j++)
            c[i][j]=a[i][j]+b[i][j];
    return 0;
}

int minus(int a[][k],int b[][k],int c[][k],int m){
    int i,j;
    for(i=0;i<m;i++)
        for(i=0;j<m;j++)
            c[i][j]=a[i][j]-b[i][j];
    return 0;
}

int cheng(int a[][k],int b[][k],int c[][k],int m){
    int i,j;
    int a11[k][k],a12[k][k],a21[k][k],a22[k][k];
    int b11[k][k],b12[k][k],b21[k][k],b22[k][k];
    int c11[k][k],c12[k][k],c21[k][k],c22[k][k];

    int m1[k][k],m2[k][k],m3[k][k],m4[k][k],m5[k][k],m6[k][k],m7[k][k];
    int he1[k][k],he2[k][k],he3[k][k],he4[k][k],he5[k][k],he6[k][k];
    int minus1[k][k], minus2[k][k], minus3[k][k], minus4[k][k];
    int c111[k][k],    c112[k][k],c221[k][k],c222[k][k];

    if(m==1)
    {
        c[0][0]=a[0][0]*b[0][0];
    }

    else
    {
      for(i=0;i<m/2;i++)
        for(j=0;j<m/2;j++)
        {
            a11[i][j]=a[i][j];
            a12[i][j]=a[i][j+m/2];
            a21[i][j]=a[i+m/2][j];
            a22[i][j]=a[i+m/2][j+m/2];

            b11[i][j]=b[i][j];
            b12[i][j]=a[i][j+m/2];
            b21[i][j]=a[i+m/2][j];
            b22[i][j]=a[i+m/2][j+m/2];
        }
     
    add(a11,a12,he1,m/2);
    add(a21,a22,he2,m/2);
    add(a11,a22,he3,m/2);
    add(b11,b22,he4,m/2);
    add(b21,b22,he5,m/2);
    add(b11,b12,he6,m/2);
    minus(b12,b22,minus1,m/2);
    minus(b21,b11,minus2,m/2);
    minus(a12,a22,minus3,m/2);
    minus(a11,a21,minus4,m/2);

    cheng(a11,minus1,m1,m/2);
    cheng(he1,b22,m2,m/2);
    cheng(he2,b11,m3,m/2);
    cheng(a22,minus2,m4,m/2);
    cheng(he3,he4,m5,m/2);
    cheng(minus3,he5,m6,m/2);
    cheng(minus4,he6,m7,m/2);

    
    add(m5,m4,c111,m/2);
    minus(c111,m2,c112,m/2);
    add(c112,m6,c11,m/2);

    add(m1,m2,c12,m/2);

    add(m3,m4,c21,m/2);

    add(m5,m1,c221,m/2);
    minus(c221,m3,c222,m/2);
    minus(c222,m7,c22,m/2);
}

    for(i=0;i<m/2;i++)
        for(j=0;j<m/2;j++)
        {
            c[i][j]=a11[i][j];
            c[i][j+m/2]=c12[i][j];
            c[i+m/2][j]=c21[i][j];
            c[i+m/2][j+m/2]=c22[i][j];
        }
     
  return 0;

}






int main()
{
    int i,j,n;

    int  a[k][k],b[k][k];
    int c[k][k];

    scanf("%d",&n);
    printf("a和b分别是%d阶矩阵",n);

    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);

       for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            scanf("%d",&b[i][j]);
    
    printf("输出矩阵A:\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d  ",a[i][j]);
        printf("\n");
    }
   
    
    printf("输出矩阵B:\n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d  ",b[i][j]);
        printf("\n");
    }

    cheng(a,b,c,n);

    

   for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d  ",c[i][j]);
        printf("\n");
    }

    return 0;

}



在运行和编译时候都没有错,但在执行时就会被打断。请帮忙调试或看一下是哪出错了
谢谢啦