eu to fazendo um exercicio aqui usando bubblesort ele tem que ordenar os numeros mostar o maior o menor e depois mostrar em ordem decrescente
essa psre aqui eu sei que ta errada
public static void main(String[] args) {
int maior = 0,menor=0;
int []v={0,3,6,1,4,2,7,9,8,5};
for(int i=0;i<v.length;i++){
if (v[i]>maior)
maior=v[i];
}
for(int j=0;j<v.length;j++){
if (v[j]<menor)
maior=v[j];
}
for(int i=0;i<v.length-1;i++){
for(int j=0;j<v.length-1-i;j++){
if(v[j]>v[j+1]){
int aux = v[j];
v[j]=v[j+1];
v[j+1]=aux;
}
}
System.out.println(" o maior valor eh" + maior);
System.out.println(" o menor valor eh" + menor);
for(int k=0;k<v.length-1;k--){
System.out.print(v[k]-1);
}
}
}
[/code]
Acho que você não deveria passar pelo vetor uma vez verificando qual é o maior e e outra qual é o menor e sim ordenando os números… dai no final na primeira posição você teria o menor e na ultima o maior, e poderia imprimir de traz para frente…
public class BUbbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int maior = 0,menor=0;
int []v={0,3,6,1,4,2,7,9,8,5};
for(int i=0;i<v.length;i++){
if (v[i]>maior)
maior=v[i];
}
for(int j=0;j<v.length;j++){
if (v[j]<menor)
maior=v[j];
}
for(int i=0;i<v.length-1;i++){
for(int j=0;j<v.length-1-i;j++){
if(v[j]>v[j+1]){
int aux = v[j];
v[j]=v[j+1];
v[j+1]=aux;
}
}
}
for(int k=0;k<v.length;k++){
System.out.print(v[k]);
}
System.out.println(" o maior valor eh " + maior);
System.out.println(" o menor valor eh " + menor);
for(int k=v.length-1;k>=0;k--){
System.out.print(v[k]);
}
}
}
eh soh mudar a parte
for(int k=v.length; k > 0;k--){
System.out.print(v[k-1]);
}
por essa aki que vai dar certo, vai imprimir em tela em ordem decrescente
Acho que você não deveria passar pelo vetor uma vez verificando qual é o maior e e outra qual é o menor e sim ordenando os números… dai no final na primeira posição você teria o menor e na ultima o maior, e poderia imprimir de traz para frente…
[]s.[/quote]
sim isso eh verdade mais o problema que nÃo faz muito tempo que to aprendendo isso, faz uns 3 meses e na facu to aprendendo as coisa muito rapido as vezes nao consigo assimila ai eu mesma tenho que correr a traz.Vou tentar mesmo fazer como vc ta falando eh mais facil.GRta.MUito obrigada pela ajuda e pelo toque, eh sempre bom ouvirmos as pessoas mais experiente.grata.
Só uma dica. Você não precisa guardar uma variável para o maior e o menor números.
Como você está ordenando o vetor, com certeza o menor número será o de índice 0, e o maior o de índice tamanho-1. Ou ao contrário, se você ordenar o vetor de maneira decrescente direto.
Teste você mesmo:
[code]
public class Teste {
public static void main(String[] args) {
int vetor[] = {9,7,8,5,6,3,4,1,2,0};
for (int i = 0; i < vetor.length-1; i++)
for (int j = i+1; j < vetor.length; j++)
if (vetor[i] < vetor[j]) { //Ordem descrescente
int aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
}
System.out.print("Números em ordem: ");
for (int num : vetor)
System.out.print(num + " ");
System.out.println();
System.out.println("Maior: " + vetor[0]);
System.out.println("Menor: " + vetor[vetor.length-1]);
}