Pesquisar na Comunidade
Mostrando resultados para as tags ''encadeados''.
Encontrado 1 registro
-
olá. desde já agradeço por compartilhar comigo sua experiencia! quero preencher um vetor a partir do teclado, sem permitir que valores já adicionados sejam novamente inseridos.... meu problema está justamente na condição que testa se já existe algum numero dentro do vetor que seja igual a entrada atual.... meu raciocínio foi o seguinte: criar um for principal; armazenar a entrada vinda do usuário na variável 'var', e então usar um outro for encadeado varrendo todo o vetor até então preenchido pra ver se tem outro número igual. se ele encontra, teste =1, que é a restrição do do-while e ele sai do loop, voltando pro primeiro scanf pra repetir o processo; se ele não encontra nenhum numero igual, ele guarda o conteúdo da variavel var dentro do vetor v1; Desculpem. não achei outra forma de colocar aqui, então vou postar o código inteiro, mas comentado, e com o problema em questão também identificado..... o codigo não tá funcionando. a execução tá meio aleatória.... #include<stdio.h> int main (void) { int v1[10], i, teste, cont, a, var; // DECLARAÇÃO DAS VARIÁVEIS cont = 0; i = 0; printf("DIGITE O VETOR:\n"); for(i=0; i<10;i++) // PREENCHIMENTO DO VETOR COM LIMITE DE 10 POSIÇÕES.... { scanf("%d", &var); teste = 0; if(i == 0) { // i = i + 1; //ADICIONEI UMA RESTRIÇÃO PRO PRIMEIRO PREENCHIMENTO NÃO ENTRAR NA CONDIÇÃO PRINCIPAL; v1[i] = var; } else { do // ESTE 'DO' FOI A MANEIRA QUE ENCONTREI DE FAZER O PROGRAMA SAIR DO LOOP CASO ENCONTRE UM REPETIDO { for(a=0; a<i;) { if(var == v1[a]) { printf("numero repetido não pode!\n"); teste = 1; } else { a++; } v1[i] = var; } }while(teste != 1); } } printf("o vetor sem repeticoes é "); for(i=0; i<10; i++) printf("%d, ", v1[9-i]); }
- 1 resposta