Ir ao conteúdo
  • Cadastre-se

Algoritmo em linguagem C - erro na média de mulheres


Posts recomendados

Estou fazendo uma coletânea de exercícios, e no citado abaixo está dando erro na média de altura das mulheres. Podem me dar uma forcinha?

Escreva um algoritmo que leia um conjunto de 50 fichas, cada uma contendo a altura e o sexo de uma pessoa (1 = masculino e 2 = feminino), e calcule e imprima:

• A maior e a menor altura da turma;

• A média de altura da mulheres;

• A média de altura da turma.

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

int main(int argc, char *argv[])
{
 	int sexo[4], i=0, j=0, k=0, quantmulheres=0;
 	float altura[4], maior, menor, mediamulheres=0, mediaturma=0, somamulheres;
   	for ( i = 0 ; i <4; i++){	
 		printf ("Selecione o sexo:\n");
		printf ("a)[1] para masculino.\n");
		printf ("b)[2] para feminino.\n");
		scanf ("%d", &sexo[i]);
		switch (sexo[i])
		{
		 	   case 1: 
			   		printf ("Digite a altura:\n");
			   		scanf ("%f", &altura[j]);
			   		mediaturma = mediaturma + altura[j]/4;
			   		if (k == 0){
			   			  	maior = altura[j];
			   				menor = altura[j];
				   			k++;
							}
							else if (altura[j]>maior){
							 	 maior = altura[j];
								 }
								 else if(altura[j]<menor){
								 	  menor = altura[j];
									  }
									  break;
              	case 2:
			   		printf ("Digite a altura:\n");
			   		scanf ("%f", &altura[j]);
			   		quantmulheres = quantmulheres + 1;
			   		mediaturma = mediaturma + altura[j]/4;
			   		somamulheres = somamulheres + altura[j];
			   		mediamulheres =mediamulheres + somamulheres/quantmulheres;
			   		if (k == 0){
					   	  
			   			  	maior = altura[j];
			   				menor = altura[j];
				   			k++;
							}
							else if (altura[j]>maior){
							 	 maior = altura[j];
								 }
								 else if(altura[j]<menor){
								 	  menor = altura[j];
									  }	
									  break;
		}
	}
printf ("A maior altura da turma e de: %.2f \n", maior);	
printf ("A menor altura da turma e de: %.2f \n", menor);
printf ("A media de altura da turma e de: %.2f \n", mediaturma);
printf ("A media de altura das mulheres da turma e de: %.2f \n", mediamulheres);			 
								 
								 
 	
 	
  
  system("PAUSE");	
  return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Estefani Fujimoto    esse erro que está dando é por que ali no case 2 você colocou assim :

mediamulheres =mediamulheres + somamulheres/quantmulheres;

e não era para somar essas variáveis então ficaria assim:

mediamulheres = somamulheres/quantmulheres;

aqui seu código com algumas modificações :

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
    int sexo[4], i=0, j=0, k=0, quantmulheres=0;
    float altura[4], maior=0, menor=0, mediamulheres=0, mediaturma=0, somamulheres=0;
    for ( i = 0 ; i <4; i++){
        printf("Selecione o sexo:\n");
        printf("a)[1] para masculino.\n");
        printf("b)[2] para feminino.\n");
        scanf("%d", &sexo[i]);
        printf("Digite a altura:\n");
        scanf ("%f", &altura[j]);
        if (k == 0){
            maior = altura[j];
            menor = altura[j];
            k++;
        }
        if(altura[j]>maior){
        maior = altura[j];
        }
        else{if(altura[j]<menor){menor = altura[j];}}
        mediaturma = mediaturma + altura[j]/4;
        switch (sexo[i]){
            case 1:
                break;
            case 2:
                quantmulheres = quantmulheres + 1;
                somamulheres = somamulheres + altura[j];
                mediamulheres =somamulheres/quantmulheres;
                break;
        }
    }
    printf ("\n A maior altura da turma e de: ------------------> %.2f \n", maior);
    printf (" A menor altura da turma e de: ------------------> %.2f \n", menor);
    printf (" A media de altura da turma e de: ---------------> %.2f \n", mediaturma);
    printf (" A media de altura das mulheres da turma e de: --> %.2f \n\n\n", mediamulheres);
    system("PAUSE");
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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