ALGORITHM MatrixMultiplication(A[0..n - 1, 0..n - 1],
B[0..n - 1, 0..n - 1])
//Multiplies two square matrices of order n by the definition-basedalgorithm
//Input: Two n × n matrices A and B
//Output: Matrix C = AB
for i ← 0 to n - 1 do
forj ← 0 to n - 1 do
C[i, j] ← 0.0
for k ← 0 to n - 1 do
C[i, j] ← C[i, j] + A[i, k] ∗ B[k, j]
return C
C program:
#include <stdio.h>
int main()
{
int m, n, p, q, c, d, k, sum = 0;
int first[10][10], second[10][10], multiply[10][10];
printf("Enter number of rows and columns of first matrix\n");
scanf("%d%d", &m, &n);
scanf("%d%d", &m, &n);
printf("Enter elements of first matrix\n");
for (c = 0; c < m; c++)
for (d = 0; d < n; d++)
scanf("%d", &first[c][d]);
printf("Enter number of rows and columns of second matrix\n");
scanf("%d%d", &p, &q);
if (n != p)
printf("The matrices can't be multiplied with each other.\n");
else
{
printf("Enter elements of second matrix\n");
for (c = 0; c < p; c++)
for (d = 0; d < q; d++)
scanf("%d", &second[c][d]);
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
multiply[c][d]=0;
for (k = 0; k < p; k++) {
multiply[c][d] = multiply[c][d]+ first[c][k]*second[k][d];
}
}
}
printf("Product of the matrices:\n");
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++)
printf("%d\t", multiply[c][d]);
printf("\n");
}
}
return 0;
}
Output:
Enter number of rows and columns of first matrix
2
2
Enter elements of first matrix
1
2
3
4
Enter number of rows and columns of second matrix
2
2
Enter elements of second matrix
1
2
3
4
Product of the matrices:
7 10
15 22
0 comments:
Post a Comment