Scusa ... non ho controllato tutto ... ma se scrivi

for(int i = 0; i<5; i++){

intendendo che inizialmente i valga 0 e poi scrivi

for(int j=i-1; j>=0; j--){

assumi che j debba valere -1 (ovvero i-1) e non mi sembra ci sia un elemento dell'array con indice -1.

Ancora peggio quando i varra' 1 ... 2 ...

Forse e' meglio che rivedi la logica del codice ...