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]