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.
e. maior_e_menor (float mat1[4][4], float mat2[4][4]): as linhas pares da segunda matriz são preenchidas com o maior elemento da primeira, da matriz ao passo que as linhas ímpares recebem o menor elemento de mat1.

Passo 1

O programa deve criar duas matrizes quadradas de dimensão 4\times4:
– A primeira, chamada \text{mat1}, será preenchida com valores reais fornecidos pelo usuário.
– A segunda, chamada \text{mat2}, será preenchida pela função maior_e_menor, de modo que cada linha par de \text{mat2} contenha o maior elemento de \text{mat1} e cada linha ímpar contenha o menor elemento de \text{mat1}.
Para isso, vamos precisar:
  1. Ler os 16 valores de \text{mat1}.
  2. Percorrer \text{mat1} para encontrar o maior e o menor elemento.
  3. Preencher \text{mat2} conforme a paridade da linha.
  4. Exibir \text{mat2}.

Passo 2

Implementar a função maior_e_menor, que recebe como parâmetros duas matrizes 4 \times 4.
Dentro dela:
  1. Inicializar float max e float min com o primeiro elemento de mat1.
  2. Percorrer todos os elementos de mat1 (do índice (0,0) até (3,3)):
\text{if } \text{mat1}[i][j] > \text{max} \text{, então } \text{max} = \text{mat1}[i][j];ã
\text{if } \text{mat1}[i][j] < \text{min} \text{, então } \text{min} = \text{mat1}[i][j];ã
  1. Após esse laço, temos max e min. Em seguida, para cada linha i de 0 a 3 e cada coluna j de 0 a 3:
    – Se i\%\;2 == 0 (linha par), atribuir \text{mat2}[i][j] = \text{max}.
    – Caso contrário (linha ímpar), atribuir \text{mat2}[i][j] = \text{min}.

Passo 3

No programa principal:
  1. Declarar float mat1[4][4], mat2[4][4];.
  2. Ler os valores de mat1 usando dois laços for.
  3. Chamar maior_e_menor(mat1, mat2);.
  4. Exibir mat2 em formato de matriz 4\times 4.

Resposta

#include <stdio.h>

void \(maior_e_menor\)(float mat1[4][4], float mat2[4][4]) {
 float max = mat1[0][0];
 float min = mat1[0][0];
 int i, j;
 // Encontra maior e menor em mat1
 for (i \(=0\); i < 4; i\(++\)) {
 for (j \(=0\); j < 4; j\(++\)) {
 if (mat1[i][j] > max) {
 max = mat1[i][j];
 }
 if (mat1[i][j] < min) {
 min = mat1[i][j];
 }
 }
 }
 // Preenche mat2: linhas pares com max, ímpares com min
 for (i \(=0\); i < 4; i\(++\)) {
 for (j \(=0\); j < 4; j\(++\)) {
 if (i % \(2==0\)) {
 mat2[i][j] = max;
 } else {
 mat2[i][j] = min;
 }
 }
 }
}

int main() {
 float mat1[4][4], mat2[4][4];
 int i, j;
 // Leitura de mat1
 printf("Informe os valores de uma matriz 4x4 (linha a linha):
");
 for (i \(=0\); i < 4; i\(++\)) {
 for (j \(=0\); j < 4; j\(++\)) {
 printf("mat1[%d][%d]: ", i, j);
 scanf("%f", &mat1[i][j]);
 }
 }
 // Chama a função para preencher mat2
 \(maior_e_menor\)(mat1, mat2);
 // Exibe mat2
 printf("
Matriz resultante mat2:
");
 for (i \(=0\); i < 4; i\(++\)) {
 for (j \(=0\); j < 4; j\(++\)) {
 printf("%8.2f", mat2[i][j]);
 }
 printf("
");
 }
 return 0;
}

Exercícios relacionados