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

Imprimir a posição do elemento no vetor


Mestre Funen

Pergunta

1-)Elabore um programa que dado uma seqüência numérica de N elementos armazenados num vetor, determine o índice (posição) do maior elemento do conjunto.

Pessoal, como podem ver no meu programa eu consigo descobrir e imprimir o maior elemento do vetor, meu problema é que eu não sei imprimir a posição do maior elemento no vetor.

 
#include <stdio.h>
#include <conio.h>
#define tam 10

main(){
int vet[tam],i,maior;

for(i=0;i<tam;i++){
printf("Entre com os valores do vetor:");
scanf("%d",&vet[i]);
}
maior = vet[0];
for(i=0; i<tam; i++){
if (vet[i] > maior)
maior = vet[i];
}

printf("O maior elemento do vetor %d",maior);

getch();
}
[/codebox]

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Você já está armazenando valor o maior elemento na variável maior, basta armazenar também sua posição em outra variável (por exemplo, posicaoMaior).

O código fica mais ou menos assim:

for(i=0; i<tam; i++){
if (vet[i] > maior)
maior = vet[i];
maiorPosicao=i; //atribui a posição do maior a i
}

Link para o comentário
Compartilhar em outros sites

  • 0

Eu fiz o que vocês me disseram mas tem algo de errado.Tipo ao invez da varial "po" (posição) estar retornando a posição do maior elemento, na verdade ela esta retornando o tamanho do vetor. Eu mudei no codigo o tamanho do vetor e percebi que "po" retorna o tamanho do vetor e não a posição do maior elemento.Se vocês quiserem também mudar o valor do vetor para ver melhor ainda :).

Não sei o que esta errado ai por isso vou colocar o codigo, se alquem quiser compilar pode copiar que vai dar certo.



#include <stdio.h>
#include <conio.h>
#define tam 10

main(){
int vet[tam],i,po=0,maior;

for(i=0;i<tam;i++){
printf("Entre com os valores do vetor:");
scanf("%d",&vet[i]);
}
maior = vet[0];
for(i=0; i<tam; i++){
if (vet[i] > maior)
maior = vet[i];
po=i;
}
printf("O maior elemento do vetor e %d e sua posicao atual %d",maior,po);

getch();
}





[/codebox]

Link para o comentário
Compartilhar em outros sites

  • 0

há há há há há, tem razão, que erro mais bobo, esqueci desse detalhe sobre o if.

Bom abrigado pela ajuda Jonathan e os demais.Vou postar o codigo funcionando perfeitamente, vai que alguém precise dele.

Codigo completo e funcionando, só compilar.



#include <stdio.h>
#include <conio.h>
#define tam 10

main(){
int vet[tam],i,po=0,maior;

for(i=0;i<tam;i++){
printf("Entre com os valores do vetor:");
scanf("%d",&vet[i]);
}
maior = vet[0];
for(i=0; i<tam; i++){
if (vet[i] > maior){
maior = vet[i];
po=i;
}
}
printf("O maior elemento do vetor e %d e sua posicao atual %d",maior,po);

getch();
}








[/codebox]

Link para o comentário
Compartilhar em outros sites

  • 0

Justamebte 

Em 07/06/2015 em 14:06, Camila Camila disse:

Não deu certo gente. Esse código não tá exibindo a posição do maior elemento. Apenas guarda a última posição, que neste caso, sempre será a 9 . Como faz pra concertar?

justamente, não esta resolvido. estou precisando imprimir a posiçao e tentei fazer assim não deu certo. sempre da a ultima posição.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Em 07/06/2015 em 14:06, Camila Camila disse:

Não deu certo gente. Esse código não tá exibindo a posição do maior elemento. Apenas guarda a última posição, que neste caso, sempre será a 9 . Como faz pra concertar?

justamente, não esta resolvido. estou precisando imprimir a posiçao e tentei fazer assim não deu certo. sempre da a ultima posição.

2 minutos atrás, kleber frança de lima ribe disse:

 

justamente, não esta resolvido. estou precisando imprimir a posiçao e tentei fazer assim não deu certo. sempre da a ultima posição.

ignora um comentario kk

Link para o comentário
Compartilhar em outros sites

  • 0

Só uma duvida, você esta colocando os valores em ordem crescente ou aleatório?

porque no código citado acima, ele vai armazenar a posição do maior elemento quando o mesmo for localizado dentro do vetor

for(i=0; i<tam; i++)
{
    if (vet[i] > maior)
    {
        maior = vet[i]; 
        po=i;                 
    } 
}
Editado por AlexandreNSilva
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...