Inverte numeros em ordem decrescente

6 respostas
Z

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:
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--;
} 
}
}

6 Respostas

davidbuzatto

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

Z

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

davidbuzatto

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

Z

ja tenho isto

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] + ",");
	}
	}

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

Z

alguem me consegue ajudar?

WellingtonRamos

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

Criado 7 de novembro de 2011
Ultima resposta 8 de nov. de 2011
Respostas 6
Participantes 3