Je, svaka čast, moram se riješiti mane da se zadovoljim da kod radi bez da ga optimiziram
Ma nije to uopće optimizacija. Meni je to jednostavno normalni način razmišljanja - čist zato jer je jednostavniji, nema reuseanja elementa polja, nema petlje od kraja prema početku. Ovaj tvog kod isprva uopće nisam kužio što radi. Petlju do..while si vjerojatno mogao izbaciti da si drugačije formulirao uvjet za vanjsku while petlju i da si se poslužio if-uvjetom za j++. Ja sam inkrementaciju zapravo po skrivečki ugurao u if-uvjet: if (broj != 0) polje[brojIzvucenih++] = broj;. Prvi put sam zapravo sad napravio takvu pi*dariju - guranje inkrementacije u drugu naredbu - sam sebi se divim na tome.