Ir para conteúdo
Fórum Script Brasil
  • 0

Enquanto - While em C


ProjectWesley

Pergunta

Alguém poderia me ajudar neste exercício:

FUPCQ – Tendo-se um conjunto de dados, de tamanho indeterminado, contendo a
altura e o sexo (M ou F) de um grupo de pessoas. Faça um programa que calcule e
mostre:
a. a maior e a menor altura do grupo;
b. a média de altura das mulheres;
c. o número de homens;
d. o sexo da pessoa mais alta;
O usuário deve responder se deseja inserir informações de outra pessoa.
Obrigado, desde já!!!
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Fiz um código básico para esse programa em C++:

#include <iostream>
#include <vector>
#include <locale>
#include <limits>

using namespace std;

vector<float> Alturas_dos_Homens;
vector<float> Alturas_das_Mulheres;
float Numero_de_Homens = 0;
float Numero_de_Mulheres = 0;
float Maior_altura_dos_Homens = 0;
float Menor_altura_dos_Homens = 0;
float Maior_altura_das_Mulheres = 0;
float Menor_altura_das_Mulheres = 0;

void Perguntar_Valores(vector<float>&, vector<float>&);
void Calcular_maior_e_menor_alturas(vector<float>&, vector<float>&);
void Media_de_altura_das_Mulheres(float, float);
void Quantidade_de_Homens(float);
void Sexo_da_pessoa_mais_alta(float,float);

void Perguntar_Valores(vector<float>& Alturas_dos_Homens, vector<float>& Alturas_das_Mulheres)
{
    int i = 0; int j = 0; int Sexo; int Sim_ou_Nao = 0; bool Continuar = true;
    while ( Continuar == true)
    {
     Sexo = 0;
    cout << "Digite o sexo da pessoa (1 - Homem / 2 - Mulher)" << endl;
    cin >> Sexo;
    cin.sync();
    if (Sexo == 1)
    {
        Numero_de_Homens++;
        Alturas_dos_Homens.resize(Numero_de_Homens);
        cout << "\nDigite a altura da pessoa (em metros)." << endl;
        cin >> Alturas_dos_Homens[i];
        if (!cin)
        {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        cout << "Valor inválido." << endl << endl;
        Numero_de_Homens--;
        Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres);
        }
        i++;
    }
    else if (Sexo == 2)
    {
        Numero_de_Mulheres++;
        Alturas_das_Mulheres.resize(Numero_de_Mulheres);
        cout << "\nDigite a altura da pessoa (em metros)." << endl;
        cin >> Alturas_das_Mulheres[j];
        if (!cin)
        {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        cout << "Valor inválido." << endl << endl;
        Numero_de_Mulheres--;
        Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres);
        }
        j++;
    }
    else if ( Sexo != 1 || Sexo != 2 || !cin)
    {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        cout << "Opção inválida" << endl << endl;
        Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres);
    }
    cout <<"\nDeseja inserir informações de outra pessoa? (1 - Sim/ 2 - Não) " << endl;
    cin >> Sim_ou_Nao;
    cin.sync();
    cout << "\n\n";
    switch(Sim_ou_Nao)
    {
        case 1:
        Continuar = true;
        break;
        case 2:
        Continuar = false;
        break;
        default:
        cout << "Opção inválida. Continuando o programa" << endl << endl;
        Continuar = false;
    }
}
    Calcular_maior_e_menor_alturas(Alturas_dos_Homens, Alturas_das_Mulheres);
}

void Calcular_maior_e_menor_alturas(vector<float>& Alturas_dos_Homens, vector<float>& Alturas_das_Mulheres)
{
    int i = 0; int j = 0;
    float Maior_altura = 0; float Menor_altura = 0;
    if (Numero_de_Homens > 1)
    {
    for (i = 0; i < Numero_de_Homens; i++)
    {
        if ( i != Numero_de_Homens - 1)
        {
        if (Alturas_dos_Homens[i+1] > Alturas_dos_Homens[i])
        {
            Maior_altura_dos_Homens = Alturas_dos_Homens[i+1];
            Menor_altura_dos_Homens = Alturas_dos_Homens[i];
        }
        else
        {
            Maior_altura_dos_Homens = Alturas_dos_Homens[i];
            Menor_altura_dos_Homens = Alturas_dos_Homens[i+1];
        }
        }
        else
        {
            if ( Alturas_dos_Homens[i] > Maior_altura_dos_Homens)
            {
                Maior_altura_dos_Homens = Alturas_dos_Homens[i];
            }
        }
    }
    }
    else
    {
        Maior_altura_dos_Homens = Menor_altura_dos_Homens = Alturas_dos_Homens[0];
    }
    if (Numero_de_Mulheres > 1)
    {
    for (j = 0; j < Numero_de_Mulheres; j++)
    {
        if ( j != Numero_de_Mulheres-1)
        {
         if (Alturas_das_Mulheres[j+1] > Alturas_das_Mulheres[j])
        {
            Maior_altura_das_Mulheres = Alturas_das_Mulheres[j+1];
            Menor_altura_das_Mulheres = Alturas_das_Mulheres[j];
        }
        else
        {
            Maior_altura_das_Mulheres = Alturas_das_Mulheres[j];
            Menor_altura_das_Mulheres = Alturas_das_Mulheres[j+1];
        }
        }
        else
        {
            if (Alturas_das_Mulheres[j] > Maior_altura_das_Mulheres)
            {
                Maior_altura_das_Mulheres = Alturas_das_Mulheres[j];
            }
        }
    }
    }
    else
    {
      Maior_altura_das_Mulheres = Menor_altura_das_Mulheres = Alturas_das_Mulheres[0];
    }

    if (Maior_altura_dos_Homens > Maior_altura_das_Mulheres)
    {
        Maior_altura = Maior_altura_dos_Homens;
    }
    else
    {
        Maior_altura = Maior_altura_das_Mulheres;
    }
    if (Menor_altura_dos_Homens < Menor_altura_das_Mulheres)
    {
        Menor_altura = Menor_altura_dos_Homens;
    }
    else
    {
        Menor_altura = Menor_altura_das_Mulheres;
    }

    cout << "\n\nA maior altura do grupo é: " << Maior_altura << "m" << endl;
    cout << "\n\nA menor altura do grupo é: " << Menor_altura << "m" << endl;
}

void Media_de_altura_das_Mulheres(vector<float>& Alturas_das_Mulheres, float Numero_de_Mulheres)
{
    int i = 0;
    float Soma_das_alturas_das_Mulheres = 0;
    for(i = 0; i < Numero_de_Mulheres; i++)
    {
        Soma_das_alturas_das_Mulheres += Alturas_das_Mulheres[i];
    }

    cout << "\n\nA média das alturas das mulheres é: " << (Soma_das_alturas_das_Mulheres)/(Numero_de_Mulheres) << "m" << endl;
}

void  Quantidade_de_Homens (float Numero_de_Homens)
{
    cout << "\n\nO numero de homens é: " << Numero_de_Homens << endl << endl;
}

void Sexo_da_pessoa_mais_alta (float Maior_altura_dos_Homens, float Maior_altura_das_Mulheres)
{
    if (Maior_altura_dos_Homens > Maior_altura_das_Mulheres)
    {
        cout << "A pessoa com a maior altura ( " << Maior_altura_dos_Homens << "m ) é um homem.";
    }
    else
    {
        cout << "A pessoa com a maior altura ( " << Maior_altura_das_Mulheres << "m ) é uma mulher.";
    }

}

int main()
{
    setlocale(LC_ALL, "Portuguese");
    Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres);
    Media_de_altura_das_Mulheres(Alturas_das_Mulheres, Numero_de_Mulheres);
    Quantidade_de_Homens(Numero_de_Homens);
    Sexo_da_pessoa_mais_alta(Maior_altura_dos_Homens, Maior_altura_das_Mulheres);
    cin.get();
    return 0;
}

Poste a sua tentativa para que possamos comparar os códigos e a lógica e melhorar o programa.

Att.,
Pedro

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...