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 < b.length; j ++)
{
if(a[i] > b[j])
{
int z = a[i];
b[j] = a[i];
b[j]= z;
}
for (int r = 0; r < 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?
Cara nao ta meio confuso esse codigo ai, tenta assim…
[code]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]);
}
}
}[/code]qualquer dúvida só perguntar
Esse n e o metodo bolha ??
é, fica no laco while ate que todos os numeros tenham sido ordenados.
Vc pd usa assim tb…
[code]// 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[/code]
:razz: