Inverte numeros em ordem decrescente

ola a todos! eu quero um programa para ler N valores inteiros e escrever por ordem inversa à que foram lidos apenas os valores superiores ao último valor lido. algo do tipo :

Número de valores ? 6
Valor 1 ? 2
Valor 2 ? 0
Valor 3 ? 7
Valor 4 ? 9
Valor 5 ? 4
Valor 6 ? 1
4,9,7,2

eu ja tenho isto feito:

[code]mport java.util.*;

public class ficha2_3{
public static void main (String[] args) {
Scanner in = new Scanner(System.in);

System.out.print("Número de valores ? ");
int n = in.nextInt();
int[] vals = new int[n];

while ( n >= 0){
if ( n > vals.length){
System.out.print(" Ordem :" +n);
}
n–;
}
}
}
[/code]

Percorra o array de forma inversa, iniciando pelo último elemento, indo até o primeiro.

eu estou entendendo, mas o codigo que ja criei nao esta correcto com a sua explicação?

Mas você não leu nenhum número, a não ser o tamanho do array.
Seu if dentro do while está errado.
Você deve iniciar por tamanho - 1 e não pelo tamanho, se não você vai tentar acessar uma posição que não existe no array.

[]'s

ja tenho isto

[code]mport java.util.*;

public class ficha2_3{
public static void main (String[] args) {
Scanner in = new Scanner(System.in);

System.out.print("Número de valores ? ");
int n = in.nextInt ();
int[] array = new int [6];

int m = array.length;

for (int i = m-2; i >= 0; i–)
if (array[i] > array[n-1]) System.out.print(array[i] + “,”);
}
}[/code]

mas ainda nao faz o que quero, estou a armazenar os valores num array, depois comparar desde o penúltimo elemento até ao primeiro

alguem me consegue ajudar?

Onde você está guardando os valores que está preenchendo?