Ir para conteúdo
Fórum Script Brasil
  • 0

Mostrar posição do vetor em C


laisgaudencio

Pergunta

Oi, estou no curso de engenharia de computação e tenho pouco conhecimento com a linguagem C. Preciso mostrar o maior e o menor elemento de um vetor de 10 posições e mostrar a sua posição. Eu consegui mostrar sem problemas o maior e o menor elemento, mas não consigo mostrar a sua posição.

Alguém pode me ajudar a me mostrar em qual ponto estou errando ? Segue o meu código.

Obrigado.

/*8º Criar um vetor de 10 elementos, achar o maior e o menor elemento com suas respectivas posições.*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
//variaveis
int vet[10], i=0, maior=-99999, menor=9999, x, y;
//ordenação
for (i=0; i<10 ; ++i)
{
printf("\nNumero:");
scanf ("%i", &vet);
if (vet>maior)
{
maior=vet;
x=i;
}
if (vet<menor)
{
menor=vet;
}
if (maior<menor)
{
menor=maior;
y=i;
}
}
printf("\nO maior numero: %i", maior, "Sua posicao no vetor: %i", x);
printf("\nO menor numero: %i", menor,"Sua posicao no vetor: %i", y);
return 0;
}
Editado por laisgaudencio
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

Olha não sei se você já resolveu o seu problema mas, não vou mentir ainda estou muito longe de saber qualquer coisa sobre ordenação, pois ainda sou iniciante, mas vamos lá.

Bom eu fiz algumas adaptações no codigo e ele ficou assim:

#include <stdio.h>
#include <stdlib.h>

int main ()

{
//variaveis

    int vet [ 10 ], i = 0, maior = -99999, menor = 9999, x, y;

    //ordenação

      for ( i = 0; i < 10; ++i )
         {
            printf ( "\nNumero: " );
            scanf ( "%d", &vet [ i ] );

        if ( vet [ i ] > maior )
         {
           maior = vet [ i ];
           x = i;
         }
       if ( vet [ i ] < menor )
         {
            menor = vet [ i ];
            y = i;
         }
    }

    printf ( "\nO maior numero: %d na posicao %d do Vetor\n", maior, x );
    printf ( "\nO menor numero: %d na posicao %d do Vetor\n", menor, y );

return 0;

}

Mas infelizmente ele retorna a Posição incorreta dos elementos maior e menor, a solução foi apenas adicionar um + 1 no "x" e no" y" dentro do printf para aparentemente resolver o problema.

A outra forma que fiz foi modificar apenas esta parte e sem o + 1 no "x" e no "y":

for ( i = 1; i < 11; ++i )

E tambem pareceu funcionar . . .

Bom só posso ir ate aqui, muito provavelmente estas não devem ser as formas corretas para encontrar e resolver o problema, mas acho que já pode lhe ajudar em algo . . .

Ubuntu 14.04 GNU GCC 4.8 Codeblocks 13.12

Espero ter Ajudado ! ! !

Editado por Felipe-Petrópolis
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...