Al intentar imprimir inversamente el vector con tu código se me ha quedado bloqueado el programa. Lo he reescrito, aquí también te incluyo la suma de datos en posiciones impares:
Clase con el main (LlenarVector):
import java.util.Scanner;
public class LLenarVector {
public static void main(String[] Args) {
int encontrado = 0;
int noencontrado = 0;
int nummenu;
int usunum;
int menu = 0;
int tam;
int[] vector = {2, 3, 8, 0, 9, 10, 25, 6};
VectorPrueba miVector = new VectorPrueba(vector);
Scanner leer = new Scanner(System.in);
System.out.println("digite el tamaño del vector ");
tam = leer.nextInt();
while (menu == 0) {
System.out.println(" -- Digite 1 Para leer y Imprimir aleatoriamente Vector -- ");
System.out.println(" -- Digite 2 Para Buscar un elemento -- ");
System.out.println(" -- Digite 3 Para Imprimir inversamente el vector -- ");
System.out.println(" -- Digite 4 Para Sumar todos los datos posiciones impares -- ");
System.out.println(" -- Digite 5 Búsqueda Binaria -- ");
System.out.println(" -- Digite 6 Quicksort -- ");
System.out.println(" -- Digite 7 Para Final -- ");
nummenu = leer.nextInt();
if (nummenu == 1) {
miVector.rellenar_aleatoriamente(tam);
miVector.leerVector(0, tam);
}
if (nummenu == 2) {
Scanner leerbusca = new Scanner(System.in);
System.out.println("digite un numero que quieres buscar");
usunum = leerbusca.nextInt();
miVector.busqueda_binaria(0, encontrado, usunum, noencontrado, tam);
}
if (nummenu == 3) {
miVector.imprimir_inversamente(tam);
}
if (nummenu == 4) {
System.out.println("La suma de datos en posiciones impares es "+miVector.sumaDatosPosicionesImpares(tam));
}
if (nummenu == 5) {
// LImpio
}
if (nummenu == 6) {
// LImpio
}
if (nummenu == 7) // La Verga Cesar
{
break;
}
}
}
}
Clase VectorPrueba con algunos cambios y método para suma posiciones impares:
import java.util.Scanner;
public class VectorPrueba {
private int[] vector;
public VectorPrueba(int[] v) {
vector = v;
}
// usuario digita el numero
public void rellenar_aleatoriamente(int contador) {
if ((contador-1) == 0) {
vector[0] = (int) (Math.random() * 10);
} else {
vector[contador-1] = (int) (Math.random() * 10);
rellenar_aleatoriamente(contador-1);
}
}
public void leerVector(int pos, int tamaño) {
if (pos == tamaño - 1) {
System.out.println(" Elemento en posición " + pos + " -- > " + vector[pos]);
}
if (pos != tamaño - 1) {
System.out.println(" Elemento en posición " + pos + " -- > " + vector[pos]);
leerVector(pos + 1, tamaño);
}
}
public void busqueda_binaria(int i, int encontrado, int usunum, int noencontrado, int tamaño) {
if (encontrado == 0 && noencontrado == 0) {
if (usunum == vector[i]) // Para cuando esta !
{
System.out.println("el numero se encuentra en la posicion " + i + " " + "en el vector y es" + " " + vector[i]);
encontrado = 1;
} else {
if (i == tamaño - 1) // Para cuando no esta !
{
System.out.println("numero no esta en el vector");
noencontrado = 1;
}
}
busqueda_binaria(i + 1, encontrado, usunum, noencontrado, tamaño);
}
}
public void imprimir_inversamente(int contador) {
if ((contador-1) > 0) {
System.out.println(" Elemento en posición " + (contador-1) + " -- > " + vector[contador-1]);
imprimir_inversamente(contador-1); //Caso recursivo
}
else { //Caso base
System.out.println(" Elemento en posición " + (contador-1) + " -- > " + vector[contador-1]);
}
}
public int sumaDatosPosicionesImpares(int contador){
if (contador<=1) {return 0;} //Termina la recursión
if ((contador % 2) == 0){ //Elemento del vector impar
return (vector[contador-1]+sumaDatosPosicionesImpares(contador-2));
} else {return sumaDatosPosicionesImpares(contador-1);}
}
}