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);
}
}
troque o nextDouble por nextLine
Não funfou.
Acho que tem algo errado na passagem de parâmetros no método, agora o que é eu não sei. 
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í.
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];
}
}