Faça um programa principal que crie duas matrizes quadradas, com 4 linhas e 4 colunas, para armazenar valores reais. A primeira matriz deve ser preenchida com valores informados pelo usuário. Desenvolva as funções abaixo para armazenar na segunda matriz, o conteúdo solicitado relativo à primeira matriz.
c. soma (float mat1[4][4], float mat2[4][4]): a segunda matriz recebe a soma da primeira matriz com ela mesma.
c. soma (float mat1[4][4], float mat2[4][4]): a segunda matriz recebe a soma da primeira matriz com ela mesma.
Passo 1
O enunciado pede um programa em C que crie duas matrizes quadradas
de valores reais. A primeira matriz (
mat1
) será preenchida com dados fornecidos pelo usuário; a segunda (mat2
) deve receber, em cada posição, a soma do valor correspondente da primeira matriz com ele mesmo. O conteúdo de matéria aqui envolve: declaração de matrizes, entrada de dados com scanf
, uso de loops aninhados para percorrer matrizes e escrita de uma função que manipula matrizes.Passo 2
Definimos a função
soma
, que recebe como parâmetro as duas matrizes e preenche mat2
de modo queUsamos dois loops
for
aninhados para percorrer índices de linha e coluna de 0 a 3.Passo 3
No
main
declaramos as duas matrizes mat1
e mat2
e variáveis auxiliares i, j
. Em seguida, pedimos ao usuário que digite os 16 valores reais de mat1
, lendo-os com scanf
dentro de loops aninhados.Passo 4
Chamamos a função
soma(mat1, mat2)
. Depois, exibimos a matriz resultante mat2
em formato de 4 linhas e 4 colunas, usando printf
para cada elemento e um printf(" ")
ao fim de cada linha.Resposta
#include <stdio.h>
#define N 4
void soma(float mat1[N][N], float mat2[N][N]) {
int i, j;
for (i \(=0\); i < N; i\(++\)) {
for (j \(=0\); j < N; j\(++\)) {
mat2[i][j] = mat1[i][j] + mat1[i][j];
}
}
}
int main(void) {
float mat1[N][N], mat2[N][N];
int i, j;
printf("Digite os elementos da matriz 4x4 (linha a linha):
");
for (i \(=0\); i < N; i\(++\)) {
for (j \(=0\); j < N; j\(++\)) {
scanf("%f", &mat1[i][j]);
}
}
soma(mat1, mat2);
printf("Matriz resultante (soma de mat1 com ela mesma):
");
for (i \(=0\); i < N; i\(++\)) {
for (j \(=0\); j < N; j\(++\)) {
printf("%8.2f ", mat2[i][j]);
}
printf("
");
}
return 0;
}