@Badoo escreveu:
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); } }
Mensagens: 5
Participantes: 2