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.
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
:
– A primeira, chamada , será preenchida com valores reais fornecidos pelo usuário.
– A segunda, chamada , será preenchida pela função contenha o maior elemento de
e cada linha ímpar contenha o menor elemento de
.
– A primeira, chamada
– A segunda, chamada
maior_e_menor
, de modo que cada linha par de
Para isso, vamos precisar:
- Ler os
valores de . - Percorrer
para encontrar o maior e o menor elemento. - Preencher
conforme a paridade da linha. - Exibir
.
Passo 2
Implementar a função .
Dentro dela:
maior_e_menor
, que recebe como parâmetros duas matrizes
Dentro dela:
- Inicializar
float max
efloat min
com o primeiro elemento demat1
. - Percorrer todos os elementos de
mat1
(do índiceaté ):
- Após esse laço, temos
max
emin
. Em seguida, para cada linhade 0 a 3 e cada coluna de 0 a 3:
– Se(linha par), atribuir .
– Caso contrário (linha ímpar), atribuir.
Passo 3
No programa principal:
- Declarar
float mat1[4][4], mat2[4][4];
. - Ler os valores de
mat1
usando dois laçosfor
. - Chamar
maior_e_menor(mat1, mat2);
. - Exibir
mat2
em formato de matriz.
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;
}