• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablice - szukanie elementu bez pary

Object Storage Arubacloud
0 głosów
927 wizyt
pytanie zadane 6 listopada 2017 w C i C++ przez fyrr Użytkownik (910 p.)

Witam, szukam pomocy / wskazówek odnośnie jednego problemu do rozwiązania z działu tablic. Mianowicie chodzi o to, że należy napisać program w C, który sprawdzi które z wartości tablicy są jednakowe ( mają parę ), a jaki element nie ma swojego odpowiednika ( nie ma pary ) - program ma wypisać go na ekranie ( to jest główny cel problemu ).

Mam podaną taką część kodu, którą należy dokończyć:

int solution (int A [ ], int N);
main()
{
int A [ ] = {9,3,9,3,9,7,9};
int N = 7;
int /*Tu rozwiązanie*/ = solution (A,N)



}

Program powinien być uniwersalny tj. przy zmianie ilości wartości w tablicy, dalej powinien wyszukać te bez pary i  wypisać je na ekranie. W tym przypadku jest tylko jedna taka wartość: 7. 

Zadanie nie wydaję się trudne, ale pojawia się kilka pytań  :

- Jak okodować sprawdzanie wartości tablicy ?

- Jakiej pętli użyć ? ( jeśli w ogóle potrzeba )

- Jakie warunki będą potrzebne ?

Proszę o podanie kilku wskazówek, bo sam tego nie ogarnę ;/.

Pozdrawiam.

 

 

 

1 odpowiedź

+1 głos
odpowiedź 6 listopada 2017 przez Aisekai Nałogowiec (42,190 p.)
wybrane 6 listopada 2017 przez fyrr
 
Najlepsza
Możesz zrobić tak:

Tworzysz vector, przechowujacy dane takiego typu, jakiego jest tablica (int). I przechodzisz po każdym elemencie tablicy (pętla for z warunkiem i<tablica.length()). Jeżeli w vectorze nie ma takiej liczby, to dodajesz ją do vectora. Jeżeli jest, to usuwasz ją z vectora i przechodzisz do kolejnego elementu tablicy. I tak robisz z każdym elementem.

 

Drugi sposób jaki mi się nasuwa to sortujesz tablicę. Jeżeli w zadaniu masz napisane, że jest dokładnie jedna taka liczba, to sprawdzasz parami czy liczby są równe. Jeżeli są, to sprawdzasz kolejną parę. Jeżeli nie są, to liczba o mniejszym indeksie będzie bez pary. Tylko tutaj musiałbyś sprawdzić, czy gdzieś nie wyjdziesz za zakres tablicy.

Edit: nie musisz sprawdzać czy gdzieś nie wyjdziesz za indeks tablicy. Wystarczy w pętli for zrobić warunek coś w stylu for(int i=0; i<tablica.length()-1; i+=2). A za pętla (jeżeli nie znajdzie elementu) zwróć ostatni element w posortowanej tablicy.
komentarz 6 listopada 2017 przez Munvik Dyskutant (9,350 p.)

ma to być

komentarz 6 listopada 2017 przez fyrr Użytkownik (910 p.)
Drugi sposób jest dla mnie bardziej przystępny, bo o vectorach nie mam zielonego pojęcia, musiałbym  zobaczyć na czym to polega.

Co do drugiego sposobu : "...sprawdzasz parami czy liczby są równe" - masz na myśli użycie instrukcji if , else ?
komentarz 6 listopada 2017 przez Aisekai Nałogowiec (42,190 p.)
Nie zauważyłem, że samo C.

Tak, if-else if-else.

Dla tablic o ilości elementów parzystej, może to nie działać, ale w takich tablicach albo nie ma elementu bez pary albo są min dwa.
komentarz 6 listopada 2017 przez fyrr Użytkownik (910 p.)
Tę instrukcję if - else należałoby zamknąć wew. pętli , która przeprowadzi operację dla każdej wartości tablicy ?
komentarz 6 listopada 2017 przez Aisekai Nałogowiec (42,190 p.)
No tak. Musisz jakoś sprawdzić każdą parę elementów

Podobne pytania

+1 głos
2 odpowiedzi 555 wizyt
pytanie zadane 4 listopada 2021 w C i C++ przez topol_123 Nowicjusz (190 p.)
0 głosów
3 odpowiedzi 2,552 wizyt
pytanie zadane 2 sierpnia 2016 w C# przez Stami Gaduła (3,790 p.)
+1 głos
2 odpowiedzi 363 wizyt
pytanie zadane 19 stycznia 2016 w C i C++ przez Lukasz95 Bywalec (2,160 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...