Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <locale.h>
#define n 20

/*
9) Escreva um algoritmo que lê um vetor A[20] de inteiros apenas com valores distintos (todos
   diferentes). Caso o usuário insira um inteiro já existente, o programa deve alertar a duplicidade.
*/

int main(){

    setlocale(LC_ALL,"portuguese_Brazil");

    int a[n], i=0, j;

    

    do{

    printf("Digite um valor: ");
    scanf("%d", &a[i]);

    int cont = 0;

    for(j=0;j<n;j++){

        if(a[i]==a[j]){
            cont++;
        }

    }

    if(cont!=0){
        printf("\nEste valor já foi digitado! \n");
    }


    i++;

    }while(i<n);

    printf("\nLeitura completa\n");




return 0;
}

Galera quando compilo isto ele me retorna todas as vezes a mensagem, "Este valor já foi digitado", mas porquê isto acontece sendo que ele só retornaria isto caso encontra-se um valor igual no vetor e então atribuiria mais um a cont, mais ele faz isto todas as vezes que digito um número.

Postado
34 minutos atrás, Fn1X disse:

Reset o valor da variavel cont após a verificação, se não ela só sera zero uma vez que o if for verdadeiro.

 

abs.

Sim cara mas se você analisar eu já estou resetando, o problema não é este.

Postado

@Danilo Henriq Meu caro, antes de preencher o vetor com a variável, você precisa verificar se ela está no vetor, então use uma variável qualquer no scanf e verifica ela com as demais do vetor. 

Além disso, no 'for' você precisa limitar até i e não n, pois i é a quantidade de variáveis reais que foram preenchidas no final.

E Também dentro do if onde está o cont, imprima a mensagem e abaixo use continue, se não o i++ irá incrementar.

 

P.S: não declare a variável dentro do   do...while, declare no inicio do programa, apenas zere no final.

 

Talvez isso resolva o problema.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...