[RESOLVIDO] Código Mediana

7 respostas
java
B

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);
		
	}

}

7 Respostas

P

quem sabe vc não faz assim:

gente, a mediana é definida por : …

ai eu entro esses dados: 1,9, biscoito, batman, 666

e sai x e eu queria y

pq na BOUA eu não lembro mais o que mediana e se eu tiver q ir no google pra ver isso, vc tb pode ir… portanto nos ajude a te ajudar

B

bah…se não sabe não precisaria nem ter escrito nada…

P

eu não tenho a obrigação de saber. ja vc precisa saber

B

Você é retardado ou o que? eu disse que você tem obrigação de alguma coisa? coloquei uma dúvida pra que alguém que saiba possa me ajudar, se você sabe não deveria nem ter se manifestado.

B

Eu mesmo resolvi, vlw pela não ajuda de todos!

M

Baddo, creio que você estava irritado por dar essa reposta Peczenyj , e na boa o cara não lembrava era so vce explicar e seria dado lhe o caminho.
Mais que bom que resolveu, agora você ja sabe como fazer.

L

Você é outro que não precisava postar nada.

Criado 12 de outubro de 2016
Ultima resposta 19 de abr. de 2019
Respostas 7
Participantes 4