Ajuda para achar o erro!

Pessoal. Estou escrevendo um exercício para a faculdade, mas depois de escrever o código todo, o resultado da minha interação com as arrays não esta funcionando. Alguém poderia me ajudar em achar o erro na logica do meu código?

import static java.lang.System.out;

class Task4 {
	
	public static void main(String[] args) {
		// Array declaration
		int[] arr = {2, 3, 4, 3, 6, 7, 6, 8, 2, 9};
		int[] brr = {2, 3, 6, 8, 5, 1};
		
		// Presentation print
		out.println("int[] arr = {2,3,4,3,6,7,6,8,2,9};\nint[] brr = {2,3,6,8,5,1};");
		out.print("Result = ");
		
		// Variables declaration
		int arrLen = arr.length;
		int brrLen = brr.length;
		int counter = 0;
		
		// Iterate through every array
		for (int index = 0; index < arrLen; index++) {
			for (int index2 = 0; index2 < brrLen; index2++) {
				if (arr[index] == brr[index2]) {
					
					// Reset variable
					counter = 0;
					
					// Check in the first array if we still have duplicates
					for (int index3 = index + 1; index3 < arrLen; index3++)
						if (arr[index] == arr[index3])
							counter++;
					
					// Check in the second arry if we still have duplicates
					for (int index4 = index2 + 1; index4 < brrLen; index4++)
						if (arr[index] == brr[index4])
							counter++;
					
					// If we don't have a duplicate, print out results
					if (counter == 2)
						out.print(arr[index]);
				}
			}
		}
	}
}

Desde já agradeço a todos!

Você esqueceu de colocar qual erro está acontecendo

o resultado nao esta aparecendo! eu tenho que colocar no resultado os numeros qrepetidos das duas sequencias de numeros! mas aqui esta ficando em branco e nao mostra o que quero!

Você precisa apenas de dois laços para fazer isso:

array1 = 2, 3, 4, 3, 6, 7, 6, 8, 2, 9
array2 = 2, 3, 6, 8, 5, 
array3;

para(num1 do array1)
	para(num2 do array2)
		se(num1 igual num2)
			adiciona num1 em array3
		fim-se
	fim-para
fim-para

imprime(array3)
1 curtida

Cara desculpe a ignorância mas eu nao entendi muito bem a solução! o professor so permite usar Java.lang ele nao permite nenhuma classe! estou perdido! mas obrigado :slight_smile:

O que postei não é código, mas sim um algoritmo.

array1, array2 e array3, significa que são vetores para armazenar os números.

para e fim-para, significa que é um laço (for, por exemplo), para poder iterar sobre os itens dos arrays

se e fim-se, significa uma condição (IF)

imprime, significa que é para apresentar algo na tela (ou no console). Mesma coisa de uar System.out.println ou JOptionPane.

Agora, cabe a você transformar esse algoritmo num código e executar para ver se resolve seu problema.

1 curtida