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

Vetor se comportando estranho


Thiago Mendes

Pergunta

Olá, fui resolver um exercício relativamente simples que pedia a criação de um vetor de 5 posições, e depois mostrar o menor valor nele e sua posição..até ai tudo bem,mas quando eu coloco o menor valor na posição zero o no último printf aparece um número lixo, ou aleatório não sei dizer,alguém sabe por que isso está acontecendo?!

#define TAM 5
main(){
       int x[TAM],i,me,p;
       for(i=0;i<TAM;i++){
                          printf("x[%d] = ",i);
                          scanf("%d",&x[i]);
                          }
       for(i=0;i<TAM;i++){
                          if(i==0)
                                  me=x[i];
                          else
                              if(me>x[i]){
                                          me=x[i];
                                          p=i;
                                          }
                          }
       printf("O menor: x[%d] = %d",p,me);
       getch();
}

Obrigado,desde já! =]

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Opa, tente isso:

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

  main() {

   int i,vet[5],menor=0,pos=0;
        
   printf("Digite 5 valores:\n");
   
   for(i=0; i<5; i++){
   scanf("%d",&vet[i]); 
   }
   
   menor = vet[0]; 
   for(i=0; i<5; i++){
       if (vet[i] < menor){ 
       menor = vet[i];
       pos = i;}
   }
       
   printf("O menor elemento e: %d\n",menor);
   printf("O Posicao do menor elemento e: %d\n",pos);      
   system("Pause");
   return 0; 
}

Editado por Binder
Link para o comentário
Compartilhar em outros sites

  • 0
Olá, fui resolver um exercício relativamente simples que pedia a criação de um vetor de 5 posições, e depois mostrar o menor valor nele e sua posição..até ai tudo bem,mas quando eu coloco o menor valor na posição zero o no último printf aparece um número lixo, ou aleatório não sei dizer,alguém sabe por que isso está acontecendo?!

#define TAM 5
main(){
       int x[TAM],i,me,p;
       for(i=0;i<TAM;i++){
                          printf("x[%d] = ",i);
                          scanf("%d",&x[i]);
                          }
       for(i=0;i<TAM;i++){
                          if(i==0)
                                  me=x[i];
                          else
                              if(me>x[i]){
                                          me=x[i];
                                          p=i;
                                          }
                          }
       printf("O menor: x[%d] = %d",p,me);
       getch();
}
Obrigado,desde já! =]
O que acontece é quando você coloca o if(i==0) você não atribui a p o valor da posição
if(i==0)
{
      me=x[i];
      p=i;
}

Editado por Dan Oliveira
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...