Boa tarde.
Será que alguém pode ajudar neste método?
Seria suposto ele receber um vector de inteiros por parâmetro e depois colocar nas primeiras posições do vector os nº pares e nas últimas os nº ímpares.
Eu já fiz o método, só que o problema é que ele está a fazer o inverso do pretendido.
Podem ajudar?
Obrigado
public static void parImpar(int v[], int cap) {
int numero1, numero2, aux = 0;
int ult = cap - 1;
//agrupar em pares
for (int i = 0; i < cap; i++) {
numero1 = v[i];
if (numero1 % 2 != 0) {
aux = v[ult];
if (aux % 2 == 0) {
v[ult] = numero1;
v[i] = aux;
}
}
for (int j = i + 1; j < cap; j++) {
numero2 = v[j];
if (numero2 % 2 != 0) {
aux = v[ult];
if (aux % 2 == 0) {
v[ult] = numero2;
v[j] = aux;
}
}
}
ult--;
}
}
Output:
[list]
Vector ordenado por nº pares (primeiras posições) e ímpares (últimas posições)
1
5
3
4
2
6
[/list]
Quando deveria ser:
[list]Vector ordenado por nº pares (primeiras posições) e ímpares (últimas posições)
4
2
6
1
5
3[/list]
está melhor assim guisantogui?