Numeros nao repetidos em um vetor

2 respostas
T

eu nao estou conseguindo deixar o vetor com numeros diferentes…

gostaria jogar numeros aleatorios num vetor, ordene, e que nao haja valores repetidos, se houver, voltar e começar de novo. tvz com um while, sei lah, nao to conseguindo
se possivel algum auxilio…

boolean denovo;
int vet []  = new int [tam];


while (denovo == true){
//valores pro vetor
for (int i = 0; i < vet.length; i++) { 
	vet[i] = random.nextInt(50)+1; 
}

//ordeno assim
for (int u = 0; u< vet.length;u++){
	for (int k = 0;k < vet.length-1;k++){
		if(vet[k] > vet[k+1]){
			int aux = vet[k];
			vet[k] = vet [k+1];
			vet[k+1] = aux;
		}
	}
}

//para nao repetir os numeros no vetor
for (int i2 = 0; i2 < vet.length; i2++){
	for (int j2 = 0; j2 < vet.length-1;j2++){
		if (vet[i2] == vet[j2]){
		     denovo = true;  //neste caso ele deveria parar o for acaso                                        //fosse tivesse algum numero igual e voltar no while...
		}
	}
}
}

vlw

2 Respostas

B

Ola…

Tente fazer a parte de verificação de repetidos assim:

denovo = false;
			for (int i2 = 0; i2 < vet.length-1; i2++){
				for (int j2 = (i2+1); j2 < vet.length; j2++){
					if (vet[i2] == vet[j2]){
						denovo = true;                                       
						break;
					}
				}
			}

Antes da verificação comece “denovo” como false. Caso encontre um repetido ela vai pra true e e ja encerra os laços com o break. Também mudei a construção dos 2 laços, de uma olhada. Dessa maneira rodou legal… até mais…

T

obrigado
modifiquei mais umas coisas e ficou melhor do que eu esperava
ficou perfeito
haha
vlw

Criado 22 de outubro de 2006
Ultima resposta 23 de out. de 2006
Respostas 2
Participantes 2