Tablica jednowymiarowa pomoc w zadaniu.

0

Witam, chciałbym zeby wyswietliło mi wartości wspólne z dwóch tablic a nie moge wpasc na pomysl jak to zrobic.Prosze o pomoc.
Mój kod:

public class Cw22{

public static void main(String[] args){
	
	int[] tab1 = {3, 2, 1, 4, 6};
int[] tab2 = {1, 2, 4, 3, 4, 5};

for(int i=0; i<tab1.lenght; i++){
	for(int j=0; j<tab2.lenght; j++){
		if(tab1[i]==tab2[j]){
			
		}
			
		
	}
	
	
	
	
}



   
   
   
      }
0

dyslekcja? length
brak jednego nawiasu
a potem już tylko System.out.print(tab1[i] + " ");

0

tak tak, zauwazyłem i poprawiłem ta literówke, powiedz mi tylko jeszcze dlaczego wtedy wyswietli punkty wspólne zamiast samych wartosci z tab1[] ?

0

poniewaz jest to juz tab1 która spełnia warunek równasci z tab2 czy jak ?:d

1

Bo tak napisałeś kod, porównujesz każdy element pierwszej tablicy z każdym elementem drugiej tablicy. W przypadku równości wypisujesz element z pierwszej tablicy. Element 4 z pierwszej tablicy jest równy dwóm elementom drugiej tablicy, jest zatem wypisywany dwukrotnie.
Przykładowe rozwiązanie (elementy wspólne wypisywane są rosnąco):

import java.util.*;

public class Cw22
{
 
    public static void main(String[] args)
    {
 
        int[] tab1 = {3, 2, 1, 4, 6};
        int[] tab2 = {1, 2, 4, 3, 4, 5};
        Set<Integer> wspolne = new TreeSet<Integer>(); 
        for(int i=0; i<tab1.length; i++)
        {
            for(int j=0; j<tab2.length; j++)
            {
                if(tab1[i] == tab2[j])
                {
                    wspolne.add(tab1[i]);
                }  
            }  
        }
        for(int k:wspolne)
        {
            System.out.print(k+" ");
        }
    } 
}
0

chciałbym zeby wyswietliło mi wartości wspólne z dwóch tablic

powiedz mi tylko jeszcze dlaczego wtedy wyswietli punkty wspólne zamiast samych wartosci z tab1[]

Na początku zaliczyłem WTF, ale później zrozumiałem czego nie rozumiesz. Ale dziwne uczucie miałem w głowie, tak głęboko :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1