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

5 respostas
T

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.

5 Respostas

eduveks

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

:lol:

LPJava

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

T

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

:lol:

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.

T

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

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
ksi

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

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
Criado 6 de fevereiro de 2007
Ultima resposta 7 de fev. de 2007
Respostas 5
Participantes 4