solution_8_1_matrix_multiplication.c
C Programming Language/solutions/intermediate/week8/solution_8_1_matrix_multiplication.c
/**
* Solution 8.1: Matrix Multiplication
* Week 8 - Advanced Arrays and Strings
*
* Description: Matrix multiplication program
*/
#include <stdio.h>
void multiplyMatrices(int first[10][10], int second[10][10], int result[10][10],
int r1, int c1, int r2, int c2) {
// Initialize result matrix to zero
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c2; j++) {
result[i][j] = 0;
}
}
// Multiply matrices
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c2; j++) {
for (int k = 0; k < c1; k++) {
result[i][j] += first[i][k] * second[k][j];
}
}
}
}
void printMatrix(int matrix[10][10], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int first[10][10], second[10][10], result[10][10];
int r1, c1, r2, c2;
printf("Enter rows and columns for first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and columns for second matrix: ");
scanf("%d %d", &r2, &c2);
if (c1 != r2) {
printf("Matrix multiplication not possible!\n");
return 1;
}
printf("Enter elements of first matrix:\n");
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c1; j++) {
scanf("%d", &first[i][j]);
}
}
printf("Enter elements of second matrix:\n");
for (int i = 0; i < r2; i++) {
for (int j = 0; j < c2; j++) {
scanf("%d", &second[i][j]);
}
}
multiplyMatrices(first, second, result, r1, c1, r2, c2);
printf("Result matrix:\n");
printMatrix(result, r1, c2);
return 0;
}
solution_7_6_function_pointers_comprehensive.c
Siguiente →solution_8_2_word_count_cmdline.c
Artículos relacionados
bitwise_operations_advanced.c
bitwise_operations_advanced.c — c source code from the C Programming Language learning materials (C Programming Language/additional/advanced_topics/bitwise_operations_advanced.c).
Leer artículo →huffman_coding_complete.c
huffman_coding_complete.c — c source code from the C Programming Language learning materials (C Programming Language/additional/advanced_topics/huffman_coding_complete.c).
Leer artículo →recursion_advanced.c
recursion_advanced.c — c source code from the C Programming Language learning materials (C Programming Language/additional/algorithms/recursion_advanced.c).
Leer artículo →sorting_algorithms_complete.c
sorting_algorithms_complete.c — c source code from the C Programming Language learning materials (C Programming Language/additional/algorithms/sorting_algorithms_complete.c).
Leer artículo →binary_trees_complete.c
binary_trees_complete.c — c source code from the C Programming Language learning materials (C Programming Language/additional/data_structures/binary_trees_complete.c).
Leer artículo →linked_lists_complete.c
linked_lists_complete.c — c source code from the C Programming Language learning materials (C Programming Language/additional/data_structures/linked_lists_complete.c).
Leer artículo →