Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou com um problema que não consigo resolver. Implementei essa função para verificar por números que não sejam repetidos num vetor de tamanho n (alocado dinamicamente com malloc) e funciona perfeitamente, exceto com o número 1, que não mostra a mensagem de que ele não é repetido. Alguém teria idéia do porque?
void naoRepetidos (int n, int *vet){
int i, j, achou = 0;
for (i = 0; i < n; i++){
for (j = i+1; j < n; j++){
if (vet[i] == vet[j]){
achou = 1;
}
}
if (!achou){
printf ("\nO numero %d nao se repete", vet[i]);
}
}
}
Não vejo problema nenhum na lógica. Com qualquer número está funcionando perfeitamente, menos com 1. Já tentei de tudo e não vejo solução. Se alguém tiver alguma idéia eu agradeço.
EDIT: descobri que não estava acontecendo apenas com o número 1, e também percebi um erro: eu não estava re atribuindo 0 a variável achou.
Porém tentei isso e ainda assim não está dando certo:
void naoRepetidos (int n, int *vet){
int i, j, achou;
for (i = 0; i < n; i++){
achou = 0;
for (j = i+1; j < n; j++){
if (vet[i] == vet[j]){
achou = 1;
}
}
if (!achou){
printf ("\nO numero %d nao se repete", vet[i]);
}
}
}Carregando comentários...