C Program to Multiply Two 3 X 3 Matrices
Program :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include<stdio.h> int main() { int a[10][10], b[10][10], c[10][10], i, j, k; int sum = 0; printf("\nEnter First Matrix : n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &a[i][j]); } } printf("\nEnter Second Matrix:n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &b[i][j]); } } printf("The First Matrix is: \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf(" %d ", a[i][j]); } printf("\n"); } printf("The Second Matrix is : \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf(" %d ", b[i][j]); } printf("\n"); } //Multiplication Logic for (i = 0; i <= 2; i++) { for (j = 0; j <= 2; j++) { sum = 0; for (k = 0; k <= 2; k++) { sum = sum + a[i][k] * b[k][j]; } c[i][j] = sum; } } printf("\nMultiplication Of Two Matrices : \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf(" %d ", c[i][j]); } printf("\n"); } return (0); } |
Steps :
1 2 | Dimension of Matrix 1 : 1 X 3 Dimension of Matrix 2 : 3 X 2 |
Multiplication is Possible iff -
1 | No. of Columns of Matrix 1 = No of Columns of Matrix 2 |
Resultant Matrix Will of Dimension-
1 | c[No. of Rows of Mat1][No. of Columns of Mat2] |
Steps 1 :
1 2 3 4 5 | Evaluate : 1 X 2 = 2 Evaluate : 4 X 5 = 20 Evaluate : 6 X 7 = 22 ------------------------- Add : 64 ///c[0][0] |
Step 2 :
1 2 3 4 5 | Evaluate : 1 X 3 = 3 Evaluate : 4 X 8 = 40 Evaluate : 6 X 9 = 54 ------------------------- Add : 89 ///c[0][1] |
Programmable Implementation :
1 2 3 4 5 6 7 8 9 10 | //Multiplication Logic for (i = 0; i <= 2; i++) { for (j = 0; j <= 2; j++) { sum = 0; for (k = 0; k <= 2; k++) { sum = sum + a[i][k] * b[k][j]; } c[i][j] = sum; } } |