I’m trying to solve a matrix multiplication problem with C. Matrix sizes given in problem (2×2)
I wrote this code but it doesn’t print result as I expect. I think I’m missing a point about rules of C.
What is my mistake in this code ?
#include <stdio.h>
int main() {
int matA[2][2]={0,1,2,3};
int matB[2][2]={0,1,2,3};
int matC[2][2];
int i, j, k;
for (i = 0; i < 2; i++) {
for(j = 0; j < 2; j++) {
for(k = 0; k < 2; k++) {
matC[i][j] += matA[i][k] * matB[k][j];
}
printf("%d\n",matC[i][j]);
}
}
}
Printing Result:
2
3
4195350
11
The problem is that in the line
you are adding things to matC, but when you create it, you don’t initialize it, so it has garbage.
You sould do something like:
int matC[2][2] = {0}which will initialize all the matrix with 0’s