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
Declarar as matrizes e ler os dados de entrada. Precisamos de duas matrizes
e
de dimensão
, além de variáveis para armazenar a soma elemento a elemento
, o produto
e as somas das diagonais de cada matriz.
Passo 2
Calcular a matriz soma
, usando que
para
e
.
Passo 3
Calcular as somas das diagonais de cada matriz. Para cada matriz
:
– Diagonal principal: somar para
até
.
– Diagonal secundária: somar para
até
.
– Diagonal principal: somar
– Diagonal secundária: somar
Passo 4
Calcular o produto matricial
. Cada elemento de
é dado por
para
e
.
Passo 5
Imprimir na tela:
- A matriz soma
. - As somas das duas diagonais de
e de . - 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 diagA\(1=0\), diagA\(2=0\);
int diagB\(1=0\), diagB\(2=0\);
// Leitura das matrizes A e B
printf("Digite 25 elementos de A (linha por linha):
");
for (i \(=0\); i < 5; i\(++\))
for (j \(=0\); j < 5; j\(++\))
scanf("%d", &A[i][j]);
printf("Digite 25 elementos de B (linha por linha):
");
for (i \(=0\); i < 5; i\(++\))
for (j \(=0\); j < 5; j\(++\))
scanf("%d", &B[i][j]);
// Cálculo da soma S = A + B e das somas das diagonais
for (i \(=0\); i < 5; i\(++\)) {
for (j \(=0\); j < 5; j\(++\)) {
S[i][j] = A[i][j] + B[i][j];
}
diagA\(1+=\) A[i][i];
diagA\(2+=\) A[i][4 - i];
diagB\(1+=\) B[i][i];
diagB\(2+=\) B[i][4 - i];
}
// Cálculo do produto P = A * 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 (\(A+B\)):
");
for (i \(=0\); i < 5; i\(++\)) {
for (j \(=0\); j < 5; j\(++\))
printf("%4d", S[i][j]);
printf("
");
}
// Impressão das somas das diagonais
printf("
Soma das diagonais de A: principal = %d, secundaria = %d
",
diagA1, diagA2);
printf("Soma das diagonais de B: principal = %d, secundaria = %d
",
diagB1, diagB2);
// Impressão da matriz produto
printf("
Matriz Produto (A*B):
");
for (i \(=0\); i < 5; i\(++\)) {
for (j \(=0\); j < 5; j\(++\))
printf("%6d", P[i][j]);
printf("
");
}
return 0;
}