Jump to content
Fórum Script Brasil
  • 0

Mostrar posição do vetor em C


laisgaudencio
 Share

Question

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;
}
Edited by laisgaudencio
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 ! ! !

Edited by Felipe-Petrópolis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647k
×
×
  • Create New...