Meu array tá retornando o Menor elemento do array!

3 respostas
IFMT

Olá galera olha eu denovo, mexi naquela classe de antes e cheguei ao seguinte resultado.
Eu preciso achar o maior e menor elemento dentro do array, para achar o maior esta funcionando corretamente, mas para axar o menor não esta funcionando , quando insiro os numeros tipo[1,2,3,4,5,6,7,8,9,10] no array ele retorna:
Maior=10
Menor=0

sendo que o menor numero no array é 1!!

alguem me ajuda?

olha minha classe ai é só testar ela!!
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package constatino;

import javax.swing.JOptionPane;

/**
 *
 * @author Joabe
 */
public class VetorDe5Inteiros {
    public static void main(String[] args) {
        int[] vetor = new int[10];
        int i;
        int menor = 0;
        int maior = 0;
        
            for (i = 0; i < 10; i++) {
                if (vetor[i] < menor)
                    menor = vetor[i];
                vetor[i] =Integer.parseInt( JOptionPane.showInputDialog(null,"Entre com o valor de " +i));
            }
            for (i = 0; i < 10; i++) {
                if (vetor[i] > maior)
                    maior = vetor[i];
            }

            System.out.println("MENOR \n" + menor);
            System.out.println("MAIOR \n" + maior);
            
            
        }
    }

3 Respostas

Maureli

Velho o problema ai está na inicialização da tua variável menor, vc está atribuindo zero para variável, se vc digitar 1: 1 > 0, então tua variável menor vai continuar valendo o zero que vc atribuiu antes. Para resolver esse problema vc pode atribuir um valor para a variável menor, fazendo que a variável recebe o 1º número digitado pelo usúario, podendo assim fazer o teste com os demais números digitados.

for (i = 0; i < 10; i++) {
                 vetor[i] =Integer.parseInt( JOptionPane.showInputDialog(null,"Entre com o valor de " +i));
                if (i == 0){
                  menor = vetor[i];
                }
                  
                if (vetor[i] < menor)
                    menor = vetor[i];
              
           
                if (vetor[i] > maior)
                    maior = vetor[i];
               
            }

            System.out.println("MENOR \n" + menor);
            System.out.println("MAIOR \n" + maior);


        }
    }

Com relação ao seu laço, não precisa de dois For, pode colocar tudo dentro de um laço só que ele passa por todos os IF´s sem problemas.

quikkoo

quando vc for procurar valores dentro de limites que vc nao sabe quais vao ser, procure sempre um meio de ter como valor inicial o primeiro item, e da pra eliminar aquele if, ja q se sabe pode prever quandoa condição é verdadeira o falsa

vetor[0] =Integer.parseInt( JOptionPane.showInputDialog(null,"Entre com o valor de " +i));
// aqui vc assume que o menor e maior valor é o primeiro que aparece
// todas as comparações seguintes vão ser baseadas em um valor existente
menor = maior = vetor[0];
for  (i = 1; i < 10; i++)
{
	vetor[i] =Integer.parseInt( JOptionPane.showInputDialog(null,"Entre com o valor de " +i));
	if (vetor[i] < menor)
		menor = vetor[i];

	if (vetor[i] > maior)
		maior = vetor[i];
}

flw, t+

IFMT

Vlw galera…
funcionou diretinho!!
brigado msm!!!

Criado 4 de maio de 2010
Ultima resposta 4 de mai. de 2010
Respostas 3
Participantes 3