Exercício metodos

4 respostas
A

Galera boa noite,
Tenho um exercício muito simples para fazer só que não está dando certo.
Faça um programa em Java que leia um conjunto com 20 elementos reais e calcule a diferença entre o maior e o menor elemento existente.
Só que o calculo da diferença não muda fica os valores iniciais declarado no inicio do algoritmo. Ele calcula 0 - 999 e não os valores achados nos métodos.
Quem puder me ajudar vou ficar muito grato.

import java.util.Scanner;
public class Exer_03 {

	public static void main(String[] args) {

		double vet [] = new double [20];
		double maior = 0;
		double menor = 999;

		Preenchervetor(vet);
		Acharvalores(vet, maior, menor);
		Calculardiferenca(maior, menor);

	}

	static void Preenchervetor(double vet[]){
		Scanner in = new Scanner(System.in);
		for(int i=0;i<vet.length;i++){
			System.out.print("Número: ");
			vet[i] = in.nextDouble();
		}
	}

	static void Acharvalores(double vet[],double maior,double menor){
		for(int i=0;i<vet.length;i++){
			if(vet[i]>maior){
				maior = vet[i];
			}else if(vet[i]<menor){
				menor = vet[i];
			}
		}
		System.out.print("Maior: "+maior);
		System.out.print("\nMenor: "+menor);
	}

	static void Calculardiferenca(double maior,double menor){
		double diferenca = 0;
		diferenca = maior - menor;
		System.out.print("\nDiferença: "+diferenca);
	}

}

4 Respostas

B

troque o nextDouble por nextLine

A

Não funfou.
Acho que tem algo errado na passagem de parâmetros no método, agora o que é eu não sei. :frowning:

A

O problema é que o seu método calcularDiferenca está pegando o valor do maior e menor que você já tinha atribuido no comeco da classe, e não os valores informados por você na hora a digitação. Dá uma olhada nesse seu método(calcularDiferenca) o problema está aí.

A

Bom quebrei a cabeça aqui e conseguir resolver o exercício. Valeu aí. Ficou assim:

import java.util.Scanner;
public class Exer_03 {

	public static void main(String[] args) {
		int [] vetor = new int[20];

		preencherVetor(vetor);
		int maior = buscarMaior(vetor);
		System.out.print("Maior número: "+vetor[maior]+"\nPosição: "+maior);
		int menor = buscarMenor(vetor);
		System.out.print("\nMenor número: "+vetor[menor]+"\nPosição: "+menor);
		int diferanca = calcularDiferenca(vetor, maior, menor);
		System.out.print("\nDiferença: "+diferanca);
	}

	static void preencherVetor(int [] v){
		Scanner in =  new Scanner(System.in);
		for (int i=0; i<v.length; i++){
			System.out.print("Número: ");
			v [i] = in.nextInt();
		}
	}

	static int buscarMaior(int [] v){
		int maior=0;
		for (int i=1; i<v.length; i++){
			if (v[i]>v[maior]){
				maior=i;
			}
		}
		return maior;
	}

	static int buscarMenor(int [] v){
		int menor = 0;
		for (int i = 1; i < v.length; i++) {
			if(v[i]<v[menor]){
				menor = i;
			}
		}
		return menor;
	}

	static int calcularDiferenca(int [] v,int maior,int menor){
		int diferenca = 0;
		return diferenca = v[maior] - v[menor];
	}
}
Criado 16 de março de 2013
Ultima resposta 16 de mar. de 2013
Respostas 4
Participantes 3