Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Código Mediana

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>