Szukanie tych samych liczb w tablicach...

Szukanie tych samych liczb w tablicach...

Wątek przeniesiony 2015-03-03 16:42 z C/C++ przez ŁF.

Z8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Mam błahy problem. Nie potrafię wyszukać powtarzających się liczb w tablicach. Gdzie popełniam błąd?

#include <iostream>

using namespace std;
int tablica1[5], tablica2[5];
int main()
{
cout << "Podaj liczby: " << endl;
for(int i=0; i<=5; i++)
{

cin>>tablica1[i];
}
cout << "Podaj liczby 2: " << endl;
for(int j=0;j<=5; j++)
{


cin>>tablica1[j];
}

for(int i=0; i<=5; i++)
{
for(int j=0;j<=5; j++)
{
if(tablica1[i]==tablica2[j])
cout<<"Powtarzajace sie liczby to: "<<tablica1[i]<<endl;

}

}

return 0;

}

  • Rejestracja: dni
  • Ostatnio: dni
0

Wrzuć kod w tagi. Zapisujesz w obydwu pętlach wartości do jednej tablicy.

Lectre
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 293
0

cout < "Podaj liczby: " < endl;

Pierwszy błąd popełniasz tutaj. << zamiast < .

Spójrz do jakich tablic wczytujesz. W dwóch pętlach wpisujesz do tablica1.

Indeksy [numery] tablic zapisujemy od 0. Jeśli tworzysz tablicę o wielkości 5, to indeksy są następujące: 0, 1, 2, 3, 4. Dlatego musisz poprawić warunki pętli.

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int a[] = {1, 2, 3, 4}, b[] = {2, 4};
	for(int num : a)
		if(binary_search(begin(b), end(b), num))
			cout << num;
	return 0;
}
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Ponadto wychodzisz poza zakres tablicy.
int x[5]; tworzy tablicę z pięcioma elementami z indeksami 0..4, a nie 0..5.

Z8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Już działa. Dzięki za odp. Teraz mam drugi problem, a mianowicie:przepisać z tablicy A do tablicy B tylko te elementy które się nie powtarzają. Nie mam pomysłu jak to zrobić.

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pomorskie (Stare Kabaty)
0

Wystarczy że rozszerzysz kod @spartanPAGE o 1 else, pomyśl troche :>
skoro if wykonuje sie dla elementów które się powtarzają, to else dla jakich?

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0
zduninho88 napisał(a):

Już działa. Dzięki za odp. Teraz mam drugi problem, a mianowicie:przepisać z tablicy A do tablicy B tylko te elementy które się nie powtarzają. Nie mam pomysłu jak to zrobić.

CHOLERNA NEGACJA

czy znalazłeś? w takim razie...

czy NIE znalazłeś? w takim razie...

satirev
  • Rejestracja: dni
  • Ostatnio: dni
2

Najlepiej byłoby obie kolekcje posortować i użyć odpowiednio: std::set_intersection i std::set_symmetric_difference.

kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
0
satirev napisał(a):

Najlepiej byłoby obie kolekcje posortować i użyć odpowiednio: std::set_intersection i std::set_symmetric_difference.

A to już zależy od wielkości - przy małej kolekcji porównywalnej raz, sortowanie wydłuży znacznie działanie programu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.