#include <iostream>
using namespace std;
void matrix_multiply(int A[10][10], int B[10][10], int C[10][10], int m, int n, int p, int q) {
if (n != p) {
cout << "Matrices A and B cannot be multiplied due to incompatible dimensions.\n";
return;
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < q; j++) {
C[i][j] = 0;
for (int k = 0; k < n; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
float calculate_average(int matrix[10][10], int m, int n) {
int sum = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
sum += matrix[i][j];
}
}
return static_cast<float>(sum) / (m * n);
}
int find_max(int matrix[10][10], int m, int n) {
int max = matrix[0][0];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
}
}
}
return max;
}
int main() {
int A[10][10], B[10][10], C[10][10];
int m, n, p, q;
cout << "Enter the number of rows and columns for matrix A (m x n): ";
cin >> m >> n;
cout << "Enter the number of rows and columns for matrix B (p x q): ";
cin >> p >> q;
if (n != p) {
cout << "Matrices A and B cannot be multiplied due to incompatible dimensions.\n";
return 0;
}
// Input matrices A and B
cout << "Enter elements of matrix A:\n";
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> A[i][j];
}
}
cout << "Enter elements of matrix B:\n";
for (int i = 0; i < p; i++) {
for (int j = 0; j < q; j++) {
cin >> B[i][j];
}
}
// A) Multiply matrices A and B
matrix_multiply(A, B, C, m, n, p, q);
cout << "Matrix C (A x B):\n";
for (int i = 0; i < m; i++) {
for (int j = 0; j < q; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}
// B) Calculate the average of matrices A and B
float average_A = calculate_average(A, m, n);
float average_B = calculate_average(B, p, q);
cout << "Average of Matrix A: " << average_A << endl;
cout << "Average of Matrix B: " << average_B << endl;
// C) Find the maximum value in matrix C
int max_C = find_max(C, m, q);
cout << "Maximum value in Matrix C: " << max_C << endl;
return 0;
}