Esse post começa comentando sobre uma ambiguidade em um enunciado de tarefa anterior. Vou replicar a atividade a solução que desenvolvi para ela (junto com o vídeo onde explicado a solução).
Enunciado: escreva um programa que receba do usuário um vetor com 20 valores inteiros e apresente o maior, o menor e suas respectivas posições em que os mesmos foram informados. Caso existam números iguais mostre a posição da primeira ocorrência.
#include <stdio.h>
#define TAM 5 //cria uma constante
int main() {
int vet[TAM], i, maior, posMaior, menor, posMenor;
//preenche o vetor
for (i = 0; i < TAM; i++) {
scanf("%i", &vet[i]);
}
//encontra o maior valor
maior = vet[0];
posMaior = 0;
for (i = 1; i < TAM; i++) {
if (vet[i] > maior) {
maior = vet[i];
posMaior = i;
}
}
//encontra o menor valor
menor = vet[0];
posMenor = 0;
for (i = 1; i < TAM; i++) {
if (vet[i] < menor) {
menor = vet[i];
posMenor = i;
}
}
//mostra o vetor
printf("Vetor: ");
for (i = 0; i < TAM; i++) {
printf("%i ", vet[i]);
}
printf("\nMaior valor: %i - posicao: %i", maior, posMaior+1);
printf("\nMenor valor: %i - posicao: %i", menor, posMenor+1);
return 0;
}
Teste o código em: https://ideone.com/JpQqQm
Resolução em vídeo
Link para o vídeo:https://youtu.be/JGu84T1QPHU
<hr/>
A solução apenas indicava a primeira ocorrência no vetor do maior e do menor valor presente (era o que eu esperava com o enunciado), mas fui questionado sobre o enunciado e resolvi apresentar uma outra solução (o questionamento foi explicado no vídeo). O vídeo a seguir apresenta a codificação para identificar os valores repetidos no vetor.
//Caso existam números iguais mostre a posição da primeira ocorrência.
#include <stdio.h>
#define TAM 5 //cria uma constante
int main() {
int vet[TAM], i, j, valor;
//preenche o vetor
for (i = 0; i < TAM; i++) {
scanf("%i", &vet[i]);
}
for (i = 0; i < TAM; i++) {
for (j = i+1; j < TAM; j++) {
if (vet[i] == vet[j]) {
printf("Valor repetido :%i: nos indices %i e %i", vet[i], i, j);
for (j = j+1; j < TAM; j++) {
if (vet[i] == vet[j]) {
printf(" e %i", j);
}
}
printf("\n");
}
}
}
return 0;
}
Resolução em vídeo