Estou tentando reverter a ordem dos componentes do meu array, porém o resultado mostra uma resposta indesejada.
1 curtida
Teta fazer assim:
int en = 3;
for (int c=0;c<v.length;c++){
s[c] = v[en];
en--;
}
2 curtidas
quando for assim, use a tecnica de programação preferida de 9 em cada 10 programadores, o PPADD
“Passei Por Aqui Driven Development”
como assim?
simples, vc esta usando um for duplo sem necessidade. tente imprimir os valores dos seus indices a cada iteração e veja se isso faz sentido.
inverter um array é simples: vc usa um For + matematica.
por exemplo, se vc tem
int x[]={0,1,2,3};
y[ ultimo + 0] = x [ primeiro +0 ];
y[ ultimo -1 ] = x [ primeiro + 1];
y[ ultimo -2 ] = x [ primeiro + 2];
y[ ultimo -3 /* primeiro */ ] = x [ primeiro + 3 /* ultimo */ ];
o primeiro indice é zero, certo?
o ultimo indice vai ser 3, certo?
se vc substituir vai sair
y[ 3 ] = x [ 0 ];
y[ 2 ] = x [ 1 ];
y[ 1 ] = x [ 2 ];
y[ 0 ] = x [ 3 ];
confere?
se vc fizer um loop em i de 0 a 3, é facil ver que x vai usar i x[i]
e y vai fazer uma subtracao y[ 3 - i ]
ou y[ ultimo - i]
onde ultimo vai ser o ultimo indice do array ou array.length -1
use matematica.
3 curtidas