Пытаюсь перемножить две квадратные матрицы, введенные пользователем

В полученной матрице выводится верно только первые два столбца. Остальные элементы считаются неверно почему-то.

#include <stdio.h>

int i,j,k,max;
int m[4][4];
int z[4][4];

int main(){
  printf("Lead the first matrix");
  printf("\n");
  for(i=0;i<4;i++){
    for(j=0;j<4;j++){
      printf("Matrix element [%d][%d]",i,j);
      printf(" ");
      scanf("%d",&m[i][j]);  
    }
    printf("\n");
  }
  printf("\n");
  printf("\n");
  printf("Lead the second matrix");
  printf("\n");
  for(i=0;i<4;i++){
    for(j=0;j<4;j++){        
      printf("Matrix element [%d][%d]",i,j);
      printf(" ");
      scanf("%d",&z[i][j]);
    }
    printf("\n");
  }
  int a[4][4];
  for(i=0;i<4;i++){
    for(j=0;j<4;j++){
      a[i][j] = 0;
      for(k=0;k<4;k++)
        a[i][j] = a[i][j] + m[i][k]*z[k][j];
      printf("%d",a[i][j]);
      printf(" ");
    }
    printf("\n");
  }
}

введите сюда описание изображения


Ответы (0 шт):