Faça uma função que receba, por parâmetro, duas matrizes quadradas de orden
e
, e retorna uma matriz C, também por parâmetro, que seja o produto matricial de A e B.
Passo 1
A gente precisa criar uma função que receba duas matrizes quadradas A e B de ordem N e retorne, via parâmetro de saída, a matriz C que seja o produto AB. O conteúdo aqui é multiplicação de matrizes.
Passo 2
Na multiplicação de matrizes, cada elemento C[i][j] da matriz resultado é o produto escalar entre a linha i de A e a coluna j de B, ou seja,
Isso significa que, para calcular cada C[i][j], precisamos somar os produtos A[i][k]·B[k][j] ao longo de k = 0 até N-1.
Passo 3
Para implementar isso em código, vamos usar três loops aninhados: o primeiro varia i de 0 até N-1 (linhas de C), o segundo varia j de 0 até N-1 (colunas de C) e o terceiro faz a soma sobre k de 0 até N-1. Antes de entrar no loop de k, inicializamos C[i][j] com zero.
Passo 4
Juntando tudo numa função em C que recebe N, A, B e C como parâmetros, teremos o algoritmo completo para multiplicar as matrizes e armazenar o resultado em C.
Resposta
void produtoMatriz(int N, double A[][N], double B[][N], double C[][N]) {
int i, j, k;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
C[i][j] = 0.0;
for (k = 0; k < N; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
int i, j, k;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
C[i][j] = 0.0;
for (k = 0; k < N; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}