C Beginner C Beginner - 3 months ago 24
C Question

Matrix Multiplication In C

I'm trying to solve a matrix multiplication problem with C. Matrix sizes given in problem (2x2)
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

Answer

The problem is that in the line

matC[i][j] += matA[i][k] * matB[k][j];

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