Exercício resolvido
Dada duas matrizes A e B, calcular e imprimir a matriz C = A x B.
Solução:
//Erick Vivan
#include <stdio.h>
#include <stdlib.h>
main()
{
int linha_a, coluna_a, linha_b, coluna_b, opcao_invalida, i, j, soma_produto, cont;
int A[50][50], B[50][50], C[50][50];
printf("Obter produto entre duas matrizes (A x B = ?).\n\n");
while(opcao_invalida != 1)
{
printf("Forneca o numero de linhas da matriz A: ");
scanf("%d", &linha_a);
printf("Forneca o numero de colunas da matriz A: ");
scanf("%d", &coluna_a);
printf("\nForneca o numero de linhas da matriz B: ");
scanf("%d", &linha_b);
printf("Forneca o numero de colunas da matriz B: ");
scanf("%d", &coluna_b);
if(coluna_a != linha_b)
{
system("cls");
printf("\nOps!\nO numero de colunas da matriz A deve ser igual ao numero de linhas da matriz B.\n\n");
opcao_invalida = 0;
}
else
{
opcao_invalida = 1;
}
}
printf("\n\nForneca os elementos da matriz A:\n\n");
for(i = 1; i <= linha_a; i++)
{
for(j = 1; j <= coluna_a; j++)
{
printf("a%d%d = ", i, j);
scanf("%d", &A[i][j]);
}
}
printf("\n\nForneca os elementos da matriz B:\n\n");
for(i = 1; i <= linha_b; i++)
{
for(j = 1; j <= coluna_b; j++)
{
printf("b%d%d = ", i, j);
scanf("%d", &B[i][j]);
}
}
for(i = 1; i <= linha_a; i++)
{
for(j = 1; j <= coluna_b; j++)
{
soma_produto = 0;
for(cont = 1; cont <= linha_b; cont++)
{
soma_produto = A[i][cont]*B[cont][j] + soma_produto;
C[i][j] = soma_produto;
}
}
}
printf("\n\nA x B = \n\n");
for(i = 1; i <= linha_a; i++)
{
for(j = 1; j <= coluna_b; j++)
{
printf("%d ", C[i][j]);
}
printf("\n");
}
printf("\n");
system("pause");
}