Beginner Doubt - Loop Error

Asked

Viewed 44 times

0

Guys, I’m doing an exercise, but something is giving conflict in this little bit of repetition, da para colocar as primeiras informações do primeiro Loop, but when it goes to the second, it skips the part of the Name. I’ve reversed the order and I have no idea how to fix it.

inserir a descrição da imagem aqui

/* Write an algorithm for a program that reads a set of 50 sheets containing each, the name, height and sex of a person. Calculate and print : a) The highest and lowest height of class b) The average height of women c) The average height of the class */

double somaT = 0, mediaM = 0, mediaT = 0, altura, somaM = 0;
double maiorH = 0, menorH = 999, maiorM = 0, menorM = 999;
char nome[30], sexo;                    
int i, mulher, turma;
turma = 0;
mulher = 0;

for (i = 0; i < 5; i++) 
{
    printf ("Digite seu nome: ");
    gets (nome);
    printf ("Digite seu sexo: ");
    sexo = getche();
    printf ("\nDigite sua altura: ");
    scanf ("%lf", &altura);

    if (sexo = 'm') {
            if (altura > maiorH) {
                maiorH = altura;
            }
            if (altura < menorH) {
                menorH = altura;
            }
    }
    if (sexo = 'f') {
        mulher++;
        somaM = somaM + altura;
            if (altura > maiorM) {
                    maiorM = altura;
                }
                if (altura < menorM) {
                    menorM = altura;
                }
    }
    turma++;
    somaT = somaT + altura;
}
mediaM = somaM / mulher;
mediaT = somaT / turma;

if (maiorH > maiorM) {
    printf ("A maior altura da turma eh: %.2lf \n", maiorH);
}
else {
    printf ("A maior altura da turma eh: %.2lf \n", maiorM);
}
if (menorH < menorM) {
    printf ("A menor altura da turma eh: %.2lf \n", menorH);
}
else {
    printf ("A menor altura da turma eh: %.2lf \n", menorM);
}

printf ("A media de altura das mulheres eh: %.2lf \n", mediaM);
printf ("A media de altura da turma eh: %.2lf \n", mediaT);

system ("PAUSE");

1 answer

0


Try to run this way by clearing the keyboard buffer

double somaT = 0, mediaM = 0, mediaT = 0, altura, somaM = 0;
double maiorH = 0, menorH = 999, maiorM = 0, menorM = 999;
char nome[30], sexo;                    
int i, mulher, turma;
turma = 0;
mulher = 0;

for (i = 0; i < 5; i++) 
{
    printf ("Digite seu nome: ");
    fflush(stdin);
    gets (nome);
    printf ("Digite seu sexo: ");
    fflush(stdin);
    sexo = getche();
    printf ("\nDigite sua altura: ");
    fflush(stdin);
    scanf ("%lf", &altura);

    if (sexo = 'm') {
            if (altura > maiorH) {
                maiorH = altura;
            }
            if (altura < menorH) {
                menorH = altura;
            }
    }
    if (sexo = 'f') {
        mulher++;
        somaM = somaM + altura;
            if (altura > maiorM) {
                    maiorM = altura;
                }
                if (altura < menorM) {
                    menorM = altura;
                }
    }
    turma++;
    somaT = somaT + altura;
}
mediaM = somaM / mulher;
mediaT = somaT / turma;

if (maiorH > maiorM) {
    printf ("A maior altura da turma eh: %.2lf \n", maiorH);
}
else {
    printf ("A maior altura da turma eh: %.2lf \n", maiorM);
}
if (menorH < menorM) {
    printf ("A menor altura da turma eh: %.2lf \n", menorH);
}
else {
    printf ("A menor altura da turma eh: %.2lf \n", menorM);
}

printf ("A media de altura das mulheres eh: %.2lf \n", mediaM);
printf ("A media de altura da turma eh: %.2lf \n", mediaT);

system ("PAUSE");
  • Okay, that’s it. Thank you

  • opa blz , da um voto ai para nois na questão resolver para ajuda, vlw

Browser other questions tagged

You are not signed in. Login or sign up in order to post.