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

Vetores


Skywalker

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

um exemplo da minha dificuldade:

int i;

leio uma vez fora do while para ter uma referencia, não sei se estou certo . . . estou ?

i=1;

printf("entrar com um valor");

scanf("%d",&c);

i=2;

while(i<=5)

{

printf("entrar com um valor");

scanf("%d",&c);

creio que seja aqui que eu tenha de percorrer o vetor. MAS COMO ?

i=i+1;

}

muito obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Exatamente, e você pode usar o próprio while para percorrer do mesmo jeito que você está fazendo para adicionar. Todavia, recomendo usar o for para isso. A cada iteração (cada volta no loop) do while, "i" não possui um valor diferente? Você não usa esse valor para colocar o número em uma determinada posição do vetor? O que te impede de usar também o mesmo artifício, porém para verificar os números nas posições do vetor?

Abraços,

Graymalkin

PS: você também não precisa ler do lado de fora do while o primeiro valor.

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

  • 0

Opa!

Aê, galera:

int i = 0, j = 0,
     c[ 6 ], aux,
     iguais = 0;

while ( i < 6 ) {
   printf( "Entrar com um valor: " );
   scanf( "%d", &aux )
   
   j = 0;

   while ( j <= i ) {
      if ( aux == c[ j ] ) {
         iguais++;
         break;
      }
    
      j++;
   }

   if ( iguais > 0 ) {
      printf( "Num pode ser repeteco!" );
      continue;
   } else
      c[ i ] = aux;

   i++;
}

Eu joguei uma variável contadora chamada "iguais". Percorri novamente o array (veja o loop mais interno), mas só até onde a variável "i" foi (não faz sentido ir além porque o caminho além da variável "i" ainda não foi desbravado). Bom, quando um número igual ao número entrado é encontrado, a variável "iguais" é incrementada de 1 e pára o loop interno, seguindo com o externo.

E a sugestão do Graymalkin (mais uma vez) é boa: é melhor usar o laço "for".

Valeu, galera!

Link para o comentário
Compartilhar em outros sites

  • 0

Se você tiver ume entrada restrita, como números de 0 a 100, por exemplo, pode ser mais vantajoso usar uma estrutura Hash para fazer esse algoritmo. É assim:

Você cria um vetor de booleanos que indicam se o numero está ou não presente. Para conferir, basta checar a posiçao vetor.

A tabela Hash tem a vantagem de ter tempo de leitura e gravação O(1). Em compensação, exige espaço extra na memória. Em casos de 1000 entradas até 10000, ou até mais, é preferivel usar hash. Afinal, ninguém nota se seu programa usa 100kb a mais de memoria, mas todo mundo nota se ele leva um segundo pra cada coisa q for registrar. smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

ae galera, muito obrigado pelas dicas . . resolvi o meu problema .

criei uma função que ao entrar com um valor, eu percorria o vetor atrás de um valor igual.

Achando, atribuia o valor 0 à uma variavel e a retornava.

tudo isso em uma estrutura de repetição que se validava se essa tal variavel fosse igual 0.

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...