Olá, tenho o seguinte exercício:
Crie um programa em Java que implemente a função valores_entre. Essa função recebe como parâmetro um array de inteiros V e retorna um outro array de inteiros contendo todos os valores de V que estejam entre o valor mínimo e máximo (que também são passados como parâmetro para a função).
Em seguida, crie a função principal do programa para inicializar um array de inteiros de tamanho 10, exibir esses valores na tela e pedir para o usuário digitar o valor mínimo e máximo a ser buscado. Em seguida o programa deverá chamar a função valores_entre e exibir na tela os valores resultantes.
Meu código ficou assim:
import java.util.Scanner;
public class Vetor {
/**
* A função pegará o vetor inserido e sobrescreverá-lo caso esteja dentro dos limites inseridos e a partir disso o
* copiará para o vetor2 que será o retorno.
* @param vetor será o vetor que será usado para os testes com os limites
* @param minimo será o limite mínimo adotado
* @param maximo será o limite máximo adotado
* @return vetor2 com os valores contidos no intervalo.
*/
public static int[] valores_entre(int[] vetor, int minimo, int maximo){
int indice = 0;
for(int contador = 0; contador < 10; contador++){
if(vetor[contador] >= minimo && vetor[contador] <= maximo){
vetor[indice] = vetor[contador];
indice++;
}
}
int[] vetor2 =new int[indice];
for(int contador = 0; contador<vetor2.length-1; contador++){
vetor2[contador] = vetor[contador];
}
return vetor2;
}
public static void main(String[]args){
Scanner scanner = new Scanner(System.in);
int[] vetor = { 1, 23, 34, 45, 56, 67, 78, 89, 90, 100};
System.out.println("Digite um limites para o vetor abaixo para saber o vetor resultante.");
for(int contador = 0; contador<10; contador++){//Comando para exibir o vetor inicial
System.out.print(vetor[contador]+" ");
}
//Inserção dos limites
System.out.println("\nLimite mínimo: ");
int minimo = scanner.nextInt();
System.out.println("Limite máximo: ");
int maximo = scanner.nextInt();
for(int contador = 0; contador < valores_entre(vetor,minimo,maximo).length -1; contador++)
System.out.print(valores_entre(vetor,minimo,maximo)[contador]+" ");
scanner.close();
}
}
O código funciona para alguns casos porém não para todos, parece que tive um erro de lógica quanto ao tamanho do segundo vetor mas não compreendi ao certo.