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.

Passo 1

O enunciado pede um programa em C que crie duas matrizes quadradas 4\times4 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 que
\text{mat2}[i][j] = \text{mat1}[i][j] + \text{mat1}[i][j]
Usamos 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;
}

Exercícios relacionados