Metodo: retornar o menor elemento de um array

14 respostas
dfarias

Olá, pessoal.
Jah tentei, fiz de tudo mais ainda nao funciona.

Alg484-Criar uma função que receba um vetor de inteiros e seu tamanho e retorne o
menor dos elementos do vetor

[code]/*
Alg484-Criar uma função que receba um vetor de inteiros e seu tamanho e retorne o
menor dos elementos do vetor
*/

package algoritmo484;

import java.util.Scanner;

/**
*
* @author daniel
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

Scanner x = new Scanner (System.in);

System.out.println("informe quantidade de números ");
int qt=x.nextInt();

int vet[]=new int [qt];

for (int i=0; i<qt; i++) {
System.out.println("Informe numero ");
vet[i]=x.nextInt();

}

int r=menorelemento;//erro aqui

System.out.println(" menor valor "+r);

public static int menorelemento (int vt[]) {//erro aqui

int menornumero=0;
int limite=Integer.MAX_VALUE;
for (int i=0; i><limite; i++) {
if (vt[i]><menornumero){
menornumero=vt[i];
}

}
return menornumero;
}

}[

14 Respostas

drsmachado

Antes de postar, favor ler http://guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

ViniGodoy
  1. Inicialize a variável menorNumero com um número enorme (como Integer.MAX_INTEGER) ou com o primeiro elemento do array. Caso contrário, o algorítmo só funcionará se houverem números menores do que o valor que vc inicializou.
  2. Que diabos de comparação esquisita é essa em seu if? Isso nem sequer compila:
if (vt[i]><menornumero){
  1. A variável limite está sendo usada de maneira completamente errada. Ela não deveria ser o limite do for.>
denisspitfire

Vou colocar os passos. Pois escrever o código não faria voce pensar.

  1. Crie um vetor.
  2. Coloque valores neste vetor ou faça um randomico(ambos com um laço).
  3. Faça um metodo que receba este vetor.
  4. O metodo terá uma variavel que precisa receber a primeira posição do vetor, depois com um for voce irá verificar se… o numero da variavel é maior do que a posição atual do vetor…
  5. Faça a verificação de que. Se o valor da variavel for maior do que o valor que esta na posição atual do vetor. Troque o valor da var pelo valor atual.
    quando voce chegar no final do vetor terá o menor valor.
    Espero ter ajudado. :thumbup:

FLW

mauricionarcizo
int r=menorelemento;//erro aqui 

System.out.println(" menor valor "+r); 

int r=menorelemento;//erro aqui ---- obviamente que vai dar erro aqui voce esta chamando um método que recebe um parametro do tipo array, onde voce esta fazendo //isso? corrige isso manolo!!!

System.out.println(" menor valor "+r); 
public static int menorelemento (int vt[]) {//erro aqui

int menornumero=0; 
int limite=Integer.MAX_VALUE; 
for (int i=0; i><limite; i++) { 
if (vt[i]><menornumero){ 
menornumero=vt[i]; 
} 

} 
return menornumero; 
}
}
henriqueluz

Coloca teus códigos entre as tags code. Assim é impossível entender.

Mas um método que retornaria o menor elemento neste caso seria algo assim:

public static int retornaMenorElemento(int vetor[], int tamanho){
		int var = Integer.MAX_VALUE;
		int menor = -1;
		
		for (int elemento : vetor) {
			if(elemento < var){
				menor = elemento;
				var = elemento;
			}
		}
		
		return menor;
	}

Abs,

williamdasflores
for (int i=0; i><limite; i++) {
if (vt[i]><menornumero)

Cara, não entendi esse ><

mauricionarcizo

williamdasflores:
for (int i=0; i><limite; i++) { if (vt[i]><menornumero)

Cara, não entendi esse ><

hauhauhuaa, também não entendi…
não é em pascal que usa >< para verificar se é diferente ???

dfarias

williamdasflores:
for (int i=0; i menor que limite; i++) { if (vt[i]><menornumero)

menor que ;

ViniGodoy

mauricionarcizo:
hauhauhuaa, também não entendi…
não é em pascal que usa >< para verificar se é diferente ???

Não, ele usa <>
O VB também.

mauricionarcizo

dfarias:
williamdasflores:
for (int i=0; i<limite; i++) { if (vt[i]><menornumero)

menor que ><

manolo, o certo é assim:

for (int i =0; i<limite;i++){
if (vt[i]><menornumero)
...
}

para compara se é menor deve-se utilizar “><” (menor que) , “>” (maior que) , “><” (eu acho que era utilizado em pascal, significa diferente de)…

mauricionarcizo

ViniGodoy:
mauricionarcizo:
hauhauhuaa, também não entendi…
não é em pascal que usa >< para verificar se é diferente ???

Não, ele usa <>
O VB também.

é ta certo, mas e esse ><, da onde ele tirou?

ele quer dizer que >< significa menor que…

dfarias

sou novo aqui … o codigo é obvil que é em java, foi na hora de mandar a questao que apareceu >< só que é < (menor q) .

dfarias

Consegui… era só declarar o metodo fora do main! heheheh

mauricionarcizo

Great Man!!!

Criado 15 de julho de 2011
Ultima resposta 15 de jul. de 2011
Respostas 14
Participantes 7