dúvida livro Java como programar: cap. 7 Exer7.12

Peço para quem já estudou este livro, se tiver o código pronto deste exercicio para mandar ai pois fiquei 3 horas tentando e só consegui errar.

Se vc postar ai o exercicio, podemos tentar te ajudar a resolver, pois aqui todos gostam de desafios…

:lol:

e qual edicao do livro hehe…4ª, 6ª ou outras edições?

[quote=eduveks]Se vc postar ai o exercicio, podemos tentar te ajudar a resolver, pois aqui todos gostam de desafios…

:lol: [/quote]

7.12 (Eliminação de duplicatas) Utilize um array unidimensional para resolver o seguinte problema: Escreva um aplicativo que insere cinco números, cada um dos quais está entre 10 e 100, inclusive. Enquanto cada número é lido, exiba-o somente se ele não tiver uma duplicata de um número já lido. Cuide de tratar o ‘pior caso’, em que todos 20 números são diferentes. Utilize o menor array possível para resolver esse problema. Exiba o conjunto completo de valores único inseridos depois que o usuário inserir cada valor novo.

Para não pensarem que eu não tentei. Abaixo vai o código aonde cheguei e que não funciona.

[code]import java.util.Scanner;

public class Exer712 {
static Scanner usuario = new Scanner(System.in);
static int num[] = new int[5];

public static void main(String[] args) {
	for (int i=0;i<num.length;i++){
		System.out.println("Entre o número: ");
		num[i] = usuario.nextInt();
		if (compara()==false)
			exibeArray();

//colocar aviso de número não existente
}
}//fim de main

//método que compara todos os números entre si
static boolean compara(){
int k=0;
boolean comparado=false;

	for (int j=0;j<num.length;j++){
		for (int i=0;i<num.length;i++){
			if (comparado == (num[j]==num[i]))
				k = k+1;

			System.out.println("\n" + k);

		}
	}
	return comparado;//retorna FALSE se todos forem diferentes
}

//método para exibir a array
static void exibeArray(){
for (int i=0;i<num.length;i++){
System.out.println("\n" + num[i]);
}
}
}//fim da classe
[/code]

Olá Toni, não entendi direito o enunciado do exercício mas rabisquei algo, talvez ajude.

[code]
import java.util.Scanner;

public class Exer712 {
//método que compara todos os números entre si
static void compara(int [] numbers, int num, int fim){
for(int i=0;i<fim;i++)
if(numbers[i]==num)
return;
System.out.println(">>> “+num+” <<<");
}

//método para exibir a array
static void exibeArray(int[] num){
	for (int i=0;i<num.length;i++){
		System.out.print("["+num[i]+"] ");
	}
	System.out.println();
}

public static void main(String[] args) {
	Scanner usuario = new Scanner(System.in);
	int i=0;
	int fim = 0;
	int num[] = new int[5];
	while(i<num.length){
		System.out.println("Entre o número: ");
		int numeroAAdicionar = usuario.nextInt();
		if(numeroAAdicionar >10 && numeroAAdicionar <100){
			num[i++] = numeroAAdicionar;
			fim++;
			compara(num, numeroAAdicionar, fim-1);//Compara até o penultimo item adicionado
		}
		exibeArray(num);
		//colocar aviso de número não existente
	}
}//fim de main

}//fim da classe[/code]