Fazer um programa para ler 5 valores e, em seguida, mostrar a posição onde se encontram o maior e o menor valor.
Passo 1
A questão pede um programa que leia 5 valores numéricos e indique em quais posições (1 a 5) está o menor e o maior valor. O conteúdo envolve vetor (array), laço de repetição e comparação de elementos.
Passo 2
Definimos um vetor de 5 posições para armazenar os valores e criamos as variáveis
max
, min
, pos_max
e pos_min
. A ideia é percorrer o vetor, atualizar max
e min
conforme encontramos valores maiores ou menores, guardando também suas posições.Passo 3
Usamos um laço
for
de índice i
de 0 a 4. No primeiro elemento (i == 0
), inicializamos max = min = v[0]
e pos_max = pos_min = 1
. A cada leitura seguinte, comparamos v[i]
com max
e min
: se for maior, atualizamos max
e pos_max = i+1
; se for menor, atualizamos min
e pos_min = i+1
.Passo 4
Depois de processar os 5 valores, temos em
pos_min
a posição do menor valor e em pos_max
a posição do maior valor. Basta então imprimir essas posições.Resposta
#include <stdio.h>
int main() {
int v[5];
int max, min;
int pos_max, pos_min;
int v[5];
int max, min;
int pos_max, pos_min;
for (int i = 0; i < 5; i++) {
scanf("%d", &v[i]);
if (i == 0) {
max = min = v[0];
pos_max = pos_min = 1;
} else {
if (v[i] > max) {
max = v[i];
pos_max = i + 1;
}
if (v[i] < min) {
min = v[i];
pos_min = i + 1;
}
}
}
printf("Menor valor na posicao %d\n", pos_min);
printf("Maior valor na posicao %d\n", pos_max);
return 0;
}