Ir ao conteúdo
  • Cadastre-se
Lokslive

C RESOLVIDO os 3 menores valores de um vetor

Recommended Posts

Olá pessoal, preciso fazer um vetor com 10 posições  e achar os valores dos 3 menor números digitados e não estou conseguindo, estou apenas conseguindo achar um menor valor, alguem pode me ajudar ? 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é um código bem simples pois ainda estou aprendendo.

#include<stdio.h>

int main ()
{

 int vet[10], menor,i;

  for(i=0; i<10; i++)
  {
    scanf("\t%d", &vet);
  }
 menor=vet[0];
  for(i=0; i<10; i++)
    {
      if(vet < menor){
        menor = vet;
      }
    }
 printf("Menor numero: %d", menor);

 return 0;
}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, minha sugestão seria criar mais 4 variáveis "menor2", "menor3", "aux" e "aux2". 

Atribuir vet[1] e vet[2] a "menor2" e "menor3".

E fazer:

if(menor>menor2){
    aux = menor;
  	menor = menor2;
  	menor2 = aux;
    if(menor2>menor3){
        aux = menor2;
  	    menor2 = menor3;
  	    menor3 = aux; 
    }
}

que assim você conseguiria saber que a variável menor3 é maior que a variável menor2 que é maior que a variável menor.

 

 Dentro do for

 for(i=0; i<10; i++)
    {
      if(vet < menor){
        menor = vet;
      }
    }

Você pode criar mais dois if a mais assim:

 

 for(i=0; i<10; i++)
    {
      if(vet[i] < menor){
        aux = menor;
        menor = vet[i];
        aux2 = menor2;
        menor2 = aux;
        menor3 = aux2;
        
      } else if(vet[i] < menor2){
          aux = menor2;
          menor2 = vet[i];
          menor3 = aux;
      } else if(vet[i] < menor3){
          menor3 = vet[i];   
      }
    }

Ai você irá conseguir os menores números.

 

Espero que não tenha ficado muito confuso, qual quer coisa é só perguntar que eu explico melhor. :D

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

claro, vou tentar ir por passos

 

48 minutos atrás, Leonardo0308 disse:

criar mais 4 variáveis "menor2", "menor3", "aux" e "aux2". 

Atribuir vet[1] e vet[2] a "menor2" e "menor3".

E fazer:


if(menor>menor2){
    aux = menor;
  	menor = menor2;
  	menor2 = aux;
    if(menor2>menor3){
        aux = menor2;
  	    menor2 = menor3;
  	    menor3 = aux; 
    }
}

 

primeira etapa, o intuito dessas linhas é fazer com que você consiga organizar os valores do menor para o maior, será importante ter isso para a próxima etapa.

 

51 minutos atrás, Leonardo0308 disse:

for(i=0; i<10; i++) { if(vet[i] < menor){ aux = menor; menor = vet[i]; aux2 = menor2; menor2 = aux; menor3 = aux2; } else if(vet[i] < menor2){ aux = menor2; menor2 = vet[i]; menor3 = aux; } else if(vet[i] < menor3){ menor3 = vet[i]; } }

 

Nessas linhas de código a intenção é a mesma do seu for para selecionar o menor valor, porém agora temos que selecionar os 3 menores valores, no primeiro if ele verifica se o valor daquela posição do vetor é menor que a variável "menor", se for ele atribui o valor do vetor a variável "menor", mas agora também sabemos que o antigo valor  da variável "menor" é o segundo menor valor nessa etapa da execução e por isso usamos a variável auxiliar para atribuir o 2º menor valor a variável "menor2" e consequentemente o antigo valor da variável "menor2" passa a ser o 3º menor valor, ai usamos a variável auxiliar 2 para passar esse valor para a variável "menor3".

 

caso aquele valor do vetor não seja menor que a variável "menor", ele irá verificar se esse valor é menor que o valor de "menor2" caso seja, ele atribui o valor do vetor para "menor2" e o antigo valor de "menor2" para "menor3" com a ajuda da variável auxiliar.

 

caso menor2 não seja maior que o valor do vetor, ele irá verificar se o valor do vetor é menor que "menor3" e caso seja, esse valor será atribuído a "menor3" .

 

Deu para entender melhor agora? se tiver alguma duvida ainda pode falar :D 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×