Faça uma função que receba, por parâmetro, duas matrizes quadradas de orden N, A e B, 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,
C[i][j] = sumk=0^N-1 A[i][k] cdot B[k][j]
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];
}
}
}
}

Exercícios relacionados