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š 10 metų
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.