Mais uma vez array

5 respostas
A

Oi pessoas!

Eu sei que tem milhares de tópicos sobre esse assunto, inclusive já olhei muitos deles… Mesmo assim não consigo solucionar o meu problema, que é ordenar um array com números recebidos pelo prompt, uma coisa bem básica.

Eu fiz assim:

public class OrdenaArray{
public static void main(String args[]){
		
int a[];

if (args.length > 0)
{
int qtd = args.length;
int i =0;
for ( i=0; i <= args.length; i++)
				
a = new int[qtd];
a[i] = Integer.parseInt(args[i]);
}
		
for (int i = 0; i < a.length; i++){
  for (int j = a.length - 1; j > i; j--){
   	if (a[j] < a[i]) 
   	{
   	    int aux = a[i];
 	    a[i] = a[j];
                    a[j] = aux;

   	}
   	
   	System.out.println(array[i])
       }
     }
   }
}

Eu achei um método muito bom aqui no fórum, seria perfeito se eu não fosse obrigada a passar argumentos pelo prompt… :cry:

Se alguém puder ajudar eu agradeço muito!

5 Respostas

L

Eu não rodei o seu código, mas sugiro que vc coloque a linha

a = new int[qtd]; antes do laço for.

Rodrigo_Manhaes

Para ordenar um array “a”:

Arrays.sort(a);
eduveks

Para arrays mais “complicados”:

http://www.guj.com.br/java.tutorial.artigo.109.1.guj

Neste caso vale a dica do Rodrigo Manhães.

E atenção ao que o llvaleriano disse, que parece ta errado este teu “a = new int[qtd];”…

:wink:

A

Fiz as modificações e ainda assim não funciona… :frowning:
Não aparece nenhum erro de compilação, mas na hora de passar os números como argumentos no prompt dá erro!

import java.util.Arrays;

import javax.swing.JOptionPane;

public class ArrayOrdenado{

public static void main(String[] args){

int[] a;
a = new int[10];

if (args.length > 0 )

{

for(int i=0; i <= vet.length; i++){	

a[i] = Integer.parseInt(args[i]);

}

}
Arrays.sort(a;
     System.out.println("Seu vetor ordenado: ");
     for(int i=0; i&lt;a.length; i++){
     System.out.print(a[i]+",");
         
     }
 }

}

Não sei mais o que fazer…>

Jaison
afernandes:
Fiz as modificações e ainda assim não funciona... :( Não aparece nenhum erro de compilação, mas na hora de passar os números como argumentos no prompt dá erro!

import java.util.Arrays;
import javax.swing.JOptionPane;
public class ArrayOrdenado{

public static void main(String[] args){

int[] a;
a = new int[10];

if (args.length > 0 )
{
for(int i=0; i <= vet.length; i++){
a[i] = Integer.parseInt(args[i]);
}
}

Arrays.sort(a;
System.out.println("Seu vetor ordenado: ");
for(int i=0; i<a.length; i++){
System.out.print(a[i]+",");

}
}
}

Não sei mais o que fazer...>

Olá amigo, em baixo tenhu dois métodos prontos q organiza um array em ordem decrescente de votos do partido ve se ajuda! Bom mas como vc quer q os parametros vem pelo promp, é só enviar os parametros para o public void main (String[] args) e passar para esse método q eu fiz... (modificando ele claro). Se vc usa o eclipse, tem uma opção no menu q passa parametros para o String[] args mas eu não sei, pq não uso!

Bom é isso abraço!

public void computaApuracaoDeputados(){ //verifica posiçao-por-posiçao no array de deputados e organiza em ordem decrescente de votos
        Deputado guarda;
        for(int i=0;i<dep.length;i++){
            for(int j=i+1;j<dep.length;j++){
                if(dep[i].getVotos()><dep[j].getVotos()){;
                guarda=(Deputado)dep[i];
                dep[i]=dep[j];
                dep[j]=guarda;
                }
            }
            
        }
       
    }
    
    public void retornaListaNovaDeputados(){//retorna o array de deputados organizado em ordem decrescente de votos e imprime na tela
        for(int i=0;i<dep.length;i++){
            System.out.println(dep[i]);
        }
        //System.out.println("\n");
    }
>
Criado 3 de maio de 2006
Ultima resposta 3 de mai. de 2006
Respostas 5
Participantes 5