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;
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;
}

Exercícios relacionados