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

Pesquisa em vetor


douglas.infoti

Pergunta

Pessoal boa noite estou a um tempo parada nesse algoritmo que parece ser simples, mas não consigo terminá-lo

 

Faça um algoritmo para ler 10 inteiros diferentes a serem armazenados em um vetor. Os números deverão ser armazenados no vetor na ordem em que forem lidos, sendo que, caso o usuário digite um número que já foi digitado anteriormente, o programa deverá pedir-lhe que digite outro inteiro. Note que cada valor digitado deverá ser pesquisado no vetor, verificando se ele existe entre os números que já foram digitados. Exiba o vetor final com os valores digitados.

 

A minha dúvida é de como ver em tempo real se usuário digitou um valor repetido e se digitou pedir pra que ele digite outro naquela posição do vetor.

 

Me ajudem!

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#define MAX 10

int main() {
    int i = 0, x, n, encontrado = 0, sair = 0;
    int v[10];
    while ( i <  MAX ) {
        printf("v[%d]: ", i);
        scanf("%d%*c", &n);

        x = 0;
        sair = 0;
        while ( x < i && sair != 1 ) {
            if ( v[x] == n ){
                printf( "Numero ja esta presente no vetor. " );
                encontrado = 1;
            }else {
                x++;
            }
            
            if ( encontrado == 1 ){
                printf( "Entre novamente com v[%d]: ", i);
                scanf("%d%*c", &n);
                encontrado = 0;
            }
        }
        v[i] = n;
        i++;
    }
    printf( "\n\n");
    for( i=0; i < MAX; i++ )
        printf("v[%d]=%d\n", i, v[i]);
    
    return 0;
}

Estude o código até entender. Si tiver duvidas pergunte.

Link para o comentário
Compartilhar em outros sites

  • 0

pois sim... a coisa é que eu fiz algumas provas e ele funcionou correto. pff

Já corrijo ele e subo novamente, obrigado por informar. =)

#include <stdio.h>
#define MAX 10

int main() {
    int i = 0, x, encontrado = 0, sair = 0;
    int v[10]={0};
    while ( i <  MAX ) {
        printf("v[%d]: ", i);
        scanf("%d%*c", &v[i]);

        x = 0;
        sair = 0;
        while ( x < i && sair != 1 ) {
            if ( v[x] == v[i] ){
                printf( "Numero ja esta presente no vetor. " );
                encontrado = 1;
            }
            x++;
            
            if ( encontrado == 1 ){
                printf( "Entre novamente com v[%d]: ", i);
                scanf("%d%*c", &v[i]);
                encontrado = 0;
                x=0; //<---faltou isso!!! =D
            }
        }
        i++;
    }
    printf( "\n\n");
    for( i=0; i < MAX; i++ )
        printf("v[%d]=%d\n", i, v[i]);
    
    return 0;
}

 

Basicamente é por que esqueci de estabelecer o x a zero no final do loop interno antes de começar uma nova busca.

Link para o comentário
Compartilhar em outros sites

  • 0

Não tem problema companheiro, sempre que eu estiver errado lhe convido que me corrija, sou uma pessoa que fazer coisas erradas é natural em mim, é levantar, tomar um café e começam a aparecer coisas erradas todo o dia >_<.

 

Sorte!

Por certo... Tu eres professor? =)

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