Ir ao conteúdo

Posts recomendados

Postado

Ola a todos, 

 alguém pode me ajudar com esse código, não consigo calcular moda e a mediana nao esta aparecendo certo. segue o código que tenho.

 

 

#include <stdio.h>
#include <stdlib.h>


int main(){

int tamanho, i=0, j=0, moda;
float media=0, mediana=0, soma=0, aux=0, conta=0;

//pegando valores do usuario

printf("Qual o total de numeros ? ");
scanf("%d", &tamanho);

int cont[tamanho], v[tamanho];
if(tamanho>0){

	for(i=0;i<tamanho;i++){

	printf("digite o valor ? ");
	scanf("%d", &v[i]);

	soma+=v[i];

	}
}
//media

media=soma/tamanho;

printf("\nMedia: %2.1f \n", media);


//mediana

 for(i=0;i<tamanho-1;i++){
        for(j=i+1;j<tamanho;j++){
        	
            if(v[i] > v[j]){
            	
                aux = v[i];
                v[i] = v[j];
                v[j] = aux;
            }
        }
    }

    if(tamanho%2){
         mediana = v[tamanho/2];
    } else {
         mediana = (v[tamanho/2-1]+v[tamanho/2])/2;
    }
    
	
printf("Mediana: %2.1f \n", mediana);

//moda
for(i=0;i<tamanho;i++){
        for(j=i+1;j<tamanho;j++){
        	
			if(v[i]==v[j]){
				cont[i]++;
					if(cont[i]>conta){
						conta=cont[i];
						moda=i;
					}
			}
        	
        }
        cont[i]=0;
    }
    
printf("Moda: %d ", moda);


return 0;
}

 

  • Curtir 1
Postado

@rafael vedovatto    para postar é preciso usar o botão   <>   que está lá na barra de ferramentas da janela de responder,  pois senão o código  fica faltando alguns dados  com  os  [ i ] ,  e  a media sei que é a media dos números digitados, mas  o que moda e mediana representa ? 

Postado

mediana seria ordenar o vetor pegar os dois valores do meio e dividir por 2, no caso se for par, se for impar so pega o valor do meio. moda seria o numero que mais aparece no vetor, exemplo v={1,2,3,4,5,1,3,1,2 ,1} a moda seria 1 pois aprece 4 vezes.

  • Curtir 1
  • 7 meses depois...
Postado

Vou postar os codigos funcionando aqui com os 3 algoritmos já que esse eh o unico topico sobre moda q eu encontrei:

MODA:

void moda(float v[]){
	int T = 10; //tamanho do vetor
	int i, j, cont[T];
	float conta, moda;
	
	for(i=0;i<T;i++){
        for(j=i+1;j<T;j++){
        	
			if(v[i]==v[j]){
				cont[i]++;
					if(cont[i]>conta){
						conta=cont[i];
						moda=v[i];
					}
			}

        }
        cont[i]=0;
    }
    if(conta == 0){
    	printf("Nao existe moda\n");
	}
	else{
		printf("Moda: %.2f\n", moda);
	}

}

 

 

MEDIA:

void media(float v[]){
	int T = 10; //tamanho
	float soma=0;
	float media=0;
	int i;
	
    for(i=0;i<T;++i){
    	soma = soma + v[i];
	}
	
	media = soma/T;
	printf("Media: %.2f", media);
	
}

MEDIANA:

void mediana(float v[]){
	int T = 10; //tamanho do vetor
	int mediana;
	mediana = v[T/2-1];   //por algum motivo no meu só dava certo tirando 1 da conta
	printf("Mediana: %i", mediana);
	
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...