Ir ao conteúdo
  • Cadastre-se

C Programa em c que calcula moda media e mediana.


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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 ? 

Link para o comentário
Compartilhar em outros sites

  • 7 meses depois...

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
Link para o comentário
Compartilhar em outros sites

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...