Duvidas nesse codigo

4 respostas
G
public class doom2

{

public static void main(String args[])

{

int a [] = new int[4];

int b [] = new int[4];

a[0]=18;a[1]=15;a[2]=31;a[3]=2;

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

{
b = a;
	for (int j =  + 1; j &lt; b.length; j ++)
	 {
	 
 	  if(a[i] &gt; b[j])
 	   {
 	    int z = a[i];
 	    b[j] = a[i];
 	    b[j]= z;
 	   }
      for (int r = 0; r &lt; b.length; r ++)
      {
      System.out.println(a[r]);	
     }
  }
 	}

Eu fiz este codigo para gerar numeros crecentes de uma array, na tela.
mas duas coisas acontecem uma ele imprime mais do que foi permitido e outra ele só mostra os dois primeiros numeros correto e o resto não.
Como eu posso resolver isto?

4 Respostas

M
Cara nao ta meio confuso esse codigo ai, tenta assim....
public class doom2 { 
	public static void main(String args[]) { 
		int a [] = new int[4]; 
		a[0]=18;a[1]=15;a[2]=31;a[3]=2; 
		int i=0;
		int aux;
		while(i==0){
			i=1;
			for(int j=0; j<a.length-1;j++){
				if(a[j]>a[j+1]){
					aux=a[j];
					a[j]=a[j+1];
					a[j+1]=aux;
					i=0;
				}
			}
		}
					
		for (int r = 0; r < a.length; r ++){ 
			System.out.println(a[r]); 
		} 
	}
}
qualquer dúvida só perguntar :)
C

Esse n e o metodo bolha ??

M

é, fica no laco while ate que todos os numeros tenham sido ordenados.

C

Vc pd usa assim tb..

// metodo que verifica se o numero
   // que esta em cima e maior q o q esta em baixo
   public void MetodoBolha( int x[] ) {
      for( int i = 1; i < x.length; i++ )
         for( int j = 0; j < x.length - 1 ; j++ )
           if( x[ j ] > x[ j + 1 ] )
              Troca( x, j, j + 1 );
   } // MetodoBolha()
      
   // metodo que faz a troca das posicoes no array
   public void Troca( int y[], int primeiro, int segundo) {
      
      int velha; // variavel auxiliar

      velha = y[ primeiro ];
      y[ primeiro ] = y[ segundo ];
      y[ segundo ] = velha;
   } // Troca

:razz:

Criado 22 de janeiro de 2005
Ultima resposta 23 de jan. de 2005
Respostas 4
Participantes 3