Estou com um problema, quando os valores pedidos são PARES, a mediana não está dando o valor correto ela não esta somando os dois valores centrais e dividindo, alguém poderia ajudar com este erro no código?
import java.util.Arrays;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Vetor lista[] = new Vetor[100];
int op, fim=0;
float val;
Scanner get = new Scanner(System.in);
do
{
System.out.println(">> MENÚ PRINCIPAL <<");
System.out.println("\n1.Dados Discretos");
System.out.println("2.Dados Contínuos");
System.out.println("3.Sair");
System.out.print("\nDigite a opção -> ");
op = get.nextInt();
switch (op)
{
case 0:
if (fim==5)
System.out.print("Lista cheia!!");
else
lista[fim++] = new Vetor();
break;
case 1: System.out.println("\n>> DADOS DISCRETOS <<");
System.out.println("\nDigite a QTD de valores: ");
float tam = get.nextFloat();
int vetor[] = new int[(int) tam];
float media = 0;
float mediana = 0;
int aux = 0,j;
for (int i = 0; i < tam; i++) {
System.out.println("\nInsira um valor no vetor: ");
vetor[i] = get.nextInt();
media = media + vetor[i];
}
media = media/tam;
System.out.println("A media dos valores é: "+ media);
if( tam % 2 == 0 )//par
{
for(int i = 0;i<tam;i++)
for(j=i+1;j<tam;j++)
if(vetor[j]<vetor[i])
{
aux=vetor[i];
vetor[i]=vetor[j];
vetor[j]=aux;
}
//mediana = vetor [vetor.length/2];
//********************************
int meio, meio1, meio2 ;
meio1 = vetor[vetor.length/2];
meio2 = meio1-1;
meio = (meio1 + meio2 ) /2;
mediana = meio;
//*******************************
}
else
{
for(int i = 0;i<tam;i++)
for(j=i+1;j<tam;j++)
if(vetor[j]<vetor[i])
{
aux=vetor[i];
vetor[i]=vetor[j];
vetor[j]=aux;
}
int esq=0;
int dir=vetor.length-1;
int meio;
meio=(esq+dir)/2;
mediana = vetor[meio];
}
System.out.println("A mediana é de: "+mediana);
System.out.println(Arrays.toString(vetor));
break;
case 2:
break;
}
} while (op!=3);
}
}