How do I display the highest height ever read on the screen?

Asked

Viewed 31 times

0

int sexo = 1;
float altura;
int tm = 0, tf = 0, sm = 0, sf =0;   

printf ("O valor 0 encera o programa !!!\n");
    while (sexo!=0)
    {
        printf ("1-Masculino\t2-Feminino\n");
        scanf ("%d", &sexo);

        if (sexo == 1)
        {tm++;
        printf ("altura do Homen: \n");
        scanf ("%f", &altura);}

        if (sexo == 2)
        {tf++;
        printf ("Altura da Mulher: \n");
        scanf ("%f", &altura);}

        if (altura>0)
        altura=maior;
        {maior=altura}
    }

    printf ("Maior altura :%2.f",maior);
    printf ("Numero total de Homens: %d", tm);
    printf ("Numero total de Mulheres: %d", tf);
}

1 answer

2

You need to declare the variable initially maior as the value 0, and after that go checking whether each user input is greater than the previously stored value. If it is, store the new value in the variable maior. The code goes like this:

#include <stdio.h>

int main () {
    int sexo = 1;
    float altura, maior = 0;
    int tm = 0, tf = 0, sm = 0, sf =0;   

    printf ("O valor 0 encera o programa !!!\n");
    while (sexo!=0) {
        printf ("1-Masculino\t2-Feminino\n");
        scanf ("%d", &sexo);

        if (sexo == 1) {
            tm++;
            printf ("altura do Homen: \n");
            scanf ("%f", &altura);
        }

        if (sexo == 2) {
            tf++;
            printf ("Altura da Mulher: \n");
            scanf ("%f", &altura);
        }

        if (altura > maior) {
            maior = altura;
        }

    }
    printf ("Maior altura :%2.f",maior);
    printf ("Numero total de Homens: %d", tm);
    printf ("Numero total de Mulheres: %d", tf);
}

For you to understand better, here is the code that checks only the largest number entered.

// Declaração das variáveis
float maior = 0, altura;
// Recebemos o valor de altura
scanf("%d", &altura);
// Se a altura informada for maior que a maior altura armazenada até então, armazene a nova altura
if(altura > maior) {
    maior = altura;
}
  • They were on it for hours

  • to print the smallest would be if (height<smaller){smallest=height;} ?

  • No... You would have to initially assign lower as the first received value in the first iteration. From the second iteration you could do if (altura<menor){menor=altura;}

Browser other questions tagged

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