Sveiki, reikia pagalbos sprendžiant uždavinį: http://prntscr.com/acmx5m Rezultatų nuotrauka: http://prntscr.com/acmxml Mano kodas: http://hastebin.com/owotubapax.vala
Galbūt kas nors pagelbėtų ką blogai darau.
Bebras prieš 8 metus
Užtrukau ilgiau nei planavau bet atsakymą turiu!
Kadangi radus elementą visi kiti pasislinks, teks vėl peržiūrėti tą patį indeksą, taigi po salinti
reikėtų pridėti i--;
, tuo pačiu ir break;
Jeigu randama pora if(A[i] == A[j] && B[i] != B[j] && C[i] == C[j])
, tu pašalini elementus indeksuose i
ir j
, salinti(A, B, C, n, i, j);
. Šalinimas elementarus, pradedant duotu indeksu viską pastumti į "priekį". Bet! Pašalinus pirmąjį elementą, antrojo(to kito kurį reikia pašalint) indeksas jau pasikeitęs! Vienas iš galimų sprendimų, būtų antro elementą šalinant sumažinti indeksą: salinti(A, B, C, n, i, j-1);
Aiškesnis pavyzdys:
// Tarkime turim tokį masyvą(dydis 10)
A
B
C
D
E
F
G
H
I
J
Pašalinkime B
(indeksas 1
) ir F
(indeksas 5
) naudodami tavo funkciją. Pirmiausia bus pašalinta raidė su indeksu 1
, po šio pašalinimo masyvas atrodys taip:
// Dydis 9
A
C
D
E
F
G
H
I
J
Toliau tavo funkcija šalintų simbolį esantį esantį indekse 5
Bet pala pala, kas ten gyvena? Nebe F
! Tai atspindi tavo problemą.
P.S. Sužinoti kaip tinkamai įkelti nuorodas ir nuotraukas, gali sužinoti čia.