行列の積を計算するプログラムがうまくいきません
どこが間違っているのかわかる方お願いします
・行列A,Bはファイルから読み込む
・行列A,Bの積Cの計算には関数を用いる
#include<stdio.h>
#define ROW 10
#define COL 10
void MatrixProduct(int a[][COL],int b[][ROW],int c[][ROW],int n,int m )
{
int i,j,k;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
c[i][j]=0;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
for(k=0;k<m;k++){
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
}
int main(void)
{
FILE *fp1,*fp2;
char fname1[64],fname2[64];
int a[ROW][COL],b[ROW][COL],c[ROW][COL],n,m;
int i,j,k;
printf("Input file name ?");
scanf("%s",fname1);
printf("Output file name ?");
scanf("%s",fname2);
fp1=fopen(fname1,"r");
fp2=fopen(fname2,"w");
fscanf(fp1,"%d %d",&n,&m);
MatrixProduct(a,b,c,n,m);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fprintf(fp2,"%3d",c[i][j]);
}
fprintf(fp2,"\n");
}
fclose(fp1);
fclose(fp2);
return(0);
}
fp1
3 4
1 2 3 4
2 3 4 5
3 4 5 6
1 2 3
2 3 4
3 4 5
4 5 6