Faça um programa que, dados dois vetores bidimensionais (matrizes
e
) com dimensões de
elementos, imprima a soma destas duas matrizes, a soma das diagonais de cada matriz e a multiplicação das duas matrizes.
Passo 1
O enunciado pede um programa que trabalhe com duas matrizes
, digite-as, e então imprima:
- A soma elemento a elemento dessas duas matrizes.
- A soma das diagonais (principal e secundária) de cada matriz.
- O produto matricial
.
Passo 2
Vamos declarar em C três matrizes de inteiros
,
e
(para a soma), mais uma matriz
para o produto, e variáveis para acumular as somas das diagonais principal e secundária de
e de
.
Passo 3
Para ler cada matriz
, usamos dois loops aninhados de
até
e
até
, e chamamos e depois
.
scanf
para preencher
Passo 4
Para calcular a soma elemento a elemento, fazemos
for(i\(=0\); i<5; i\(++\))
for(j\(=0\); j<5; j\(++\))
S[i][j] = A[i][j] + B[i][j];
Passo 5
Para cada matriz, percorremos de
até
e atualizamos:
somaPrincipalA += A[i][i]
somaSecundariaA += A[i][4-i]
e de modo análogo para.
Passo 6
Para o produto matricial, aplicamos a definição:
for(i\(=0\); i<5; i\(++\))
for(j\(=0\); j<5; j\(++\)) {
P[i][j] \(=0\);
for(k\(=0\); k<5; k\(++\))
P[i][j] \(+=\) A[i][k] * B[k][j];
}
Passo 7
Por fim, imprimimos:
- A matriz soma
. - As quatro somas de diagonais (
somaPrincipalA
,somaSecundariaA
,somaPrincipalB
,somaSecundariaB
). - A matriz produto
.
Resposta
#include <stdio.h>
int main() {
int A[5][5], B[5][5], S[5][5], P[5][5];
int i, j, k;
int somaPrincipalA \(=0\), somaSecundariaA \(=0\);
int somaPrincipalB \(=0\), somaSecundariaB \(=0\);
// Leitura das matrizes A e B
printf("Digite os elementos da matriz A (5x5):
");
for (i \(=0\); i < 5; i\(++\))
for (j \(=0\); j < 5; j\(++\))
scanf("%d", &A[i][j]);
printf("Digite os elementos da matriz B (5x5):
");
for (i \(=0\); i < 5; i\(++\))
for (j \(=0\); j < 5; j\(++\))
scanf("%d", &B[i][j]);
// Soma elemento a elemento em S
for (i \(=0\); i < 5; i\(++\))
for (j \(=0\); j < 5; j\(++\))
S[i][j] = A[i][j] + B[i][j];
// Soma das diagonais de A e B
for (i \(=0\); i < 5; i\(++\)) {
somaPrincipalA \(+=\) A[i][i];
somaSecundariaA \(+=\) A[i][4 - i];
somaPrincipalB \(+=\) B[i][i];
somaSecundariaB \(+=\) B[i][4 - i];
}
// Produto matricial P = A x B
for (i \(=0\); i < 5; i\(++\)) {
for (j \(=0\); j < 5; j\(++\)) {
P[i][j] \(=0\);
for (k \(=0\); k < 5; k\(++\))
P[i][j] \(+=\) A[i][k] * B[k][j];
}
}
// Impressão da matriz soma
printf("
Matriz Soma S = A + B:
");
for (i \(=0\); i < 5; i\(++\)) {
for (j \(=0\); j < 5; j\(++\))
printf("%5d", S[i][j]);
printf("
");
}
// Impressão das somas das diagonais
printf("
Soma das diagonais de A:
");
printf("Principal = %d
", somaPrincipalA);
printf("Secundaria = %d
", somaSecundariaA);
printf("
Soma das diagonais de B:
");
printf("Principal = %d
", somaPrincipalB);
printf("Secundaria = %d
", somaSecundariaB);
// Impressão da matriz produto
printf("
Matriz Produto P = A x B:
");
for (i \(=0\); i < 5; i\(++\)) {
for (j \(=0\); j < 5; j\(++\))
printf("%5d", P[i][j]);
printf("
");
}
return 0;
}