Tworzenie tablicy z niepowtarzających się liczb

0

Napisz program, który mając dwie tablice liczb całkowitych o dowolnych długościach utworzy trzecią
zawierającą tylko te liczby, które występują w obu tablicach.

int main()
{
	const int n=6;
	int tab1[n] = {1, 2, 3, 1, 2, 7};
	
	int d = 0;
	for (int i=1; i<n; i++)
	{
		if (tab1[0] == tab1[i])
			d++;
	}

	int* tab = new int[d];
	int k=0;
	for (int i=1; i<d; i++)
	{
		if (tab1[0] == tab1[i])
		{
			tab[k] = tab1[0];
			k++;
		}
	}

	for (int i=0; i<d; i++)
		cout << tab[i] << "\t";
	
	delete[] tab;
	return 0;
}

zastanawiam sie co jest źle
}
0

Ja bym powiedział, że wszystko jest źle.
Ewidentnie wziąłeś jakiś przypadkowy kod dołączyłeś do swojego zadania, by nie wyjść na kompletnego lenia.
Zdradzę ci tajemnicę: podstęp się nie udał.

0

? A co w tym kodzie jest dobrze? Ty coś brałeś kiedy to pisałeś? Przecież to jest zupełnie bez sensu! Pierwsza pętla zlicza ile elementów tablicy tab1 jest identycznych jak jej pierwszy element, Bóg jeden wie po co to liczysz. A potem jest już tylko ciekawiej - zakładasz że wynikowa tablica będzie miała nie więcej elementów niż to co właśnie policzyłeś. Kusi mnie żeby zapytać skąd taki pomysł...
Następnie drugi raz robisz tą samą identyczną, idiotyczną, pętlę i przepisujesz sobie teraz do tablicy wynikowej zawsze pierwszy element tablicy źródłowej.
W efekcie na końcu uzyskujesz tablicę w której znajduje się n-1 razy powtarzająca się liczba z ciągu wejściowego, tzn jeśli w tablicy wejściowej pierwszy element powtarza się X razy, to w tablicy wynikowej uzyskasz X-1 takich liczb.

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