Ir ao conteúdo

Posts recomendados

Postado

Questão 4

[6,25 pontos] Escreva um programa para ler a altura (em metros) e o peso (em quilos) de um grupo de pessoas. A entrada de dados termina se for digitada altura ou peso menor ou igual a zero. Calcular o número de pessoas que têm altura maior ou igual a 1,70m e pesam menos de 60kg. Calcular também a porcentagem de pessoas que pesam mais de 80kg. Não se esqueçam de validar a entrada. Salve e envie o seu arquivo com o nome prog04.c.

 

Alguém teria uma ideia de como resolver essa questão em C?

Estou com a cabeça quente já

  • Amei 1
  • Administrador
Postado

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 2
Postado

@Maxavam      voce vai precisar usar muitas variaveis , ou se puder use vetor que irá reduzir a qtd dessas variaveis , use scanf para pegar os dados e colocar nos vetores e ao digitar um número negativo o programa fará uma pesquisa nesses vetores e decide o resultado  ,  mas não posso te dar um código pronto , pois é contra as regras do fórum , e se você fizer e puder , poste seu código aqui , e ajudaremos caso precise de alguma correção . , ,   ,.    .!

Postado

@Maxavam Seu programa terá um loop e nele será feita a entrada de peso e altura. E com as estruturas condicionais você vai controlar a atribuição de duas variáveis que serão usadas no fim: Uma para Altura >= 1.70m e peso < 60kg. E a outra da porcentagem de pessoas > 80kg.

  • Obrigado 1
Postado

O código que tenho é esse,consegui pelo menos escrever o vetor, mas não está fazendo as contas certas....

 

/******************************************************************************

                            Online C Compiler.
                Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/



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

int main()
{
    
int i;
float peso[i];
float altura[i];
int cont;
int cont2;
int cont3;
float perc;
cont=0;
cont2=0;
cont3=0;


for (i=0;i<=1000;i++)
{
    
    
    
printf("Digite  peso e altura: \n");
scanf("%f%f", &peso[i], &altura[i]);

    

    if(peso[i]<=0)
    
    {
        break;
    }
    
    if (altura[i]<=0)
    
     {
        break;
     }
    
    
     cont3=cont3+1;

      

}

if(altura[i]>=1.70 && peso[i]<=60)
      
      {
          
          cont=cont+1;
      }
      
 if(peso[i]>=80)
      
      {
          
          cont2=cont2+1;
          perc=((cont2/cont3)*100);
          
      }
      
printf("O número de pessoas que tem altura maior que 1.70m e pesam menos de 60kg é: %d \n",  cont);
printf("O o percentual de pessoas com peso maior do que 80 kg é: %.2f",  perc);

return (0);

}

 

  • Curtir 1
Postado

@Maxavam     no FinaL  precisa fazer uma pesquisa  em todas as posições desses vetores  , e não apenas em uma , como você colocou ali 

8 horas atrás, Maxavam disse:
if(altura[i]>=1.70 && peso[i]<=60)

essa linha precisa ficar dentro de um Loop , que irá procurar en todo o vetor , ou então precisaria escrever essa mesma linha a mesma qtd de vezes de cont3 de seu código ,  que não está compilando por erro de syntaxe ,  ali no início :

int i;           // a varial  i  não foi inicializada 
                 // assim ela conterá algum valor desconhecido 
                 // que é comumente chamado de Lixo de memoria
float peso  [i]; // erro , vetor criado com valor desconhecido
float altura[i]; // erro , vetor criado com valor desconhecido

poderia usar alocação dinêmica , assim :
float *peso = (float*)malloc(sizeof(float));
                 // que pode ter milhoes de cadastros
e para o vetor altura seria assm também , do mesmo jeito  .

e seu código corrido e com muitas modificações ficou assim  ,  mas pode também ser de muitas outras formas ,  que você quiser que seja ao seu Gosto :

#define _CRT_SECURE_NO_WARNINGS                              // para usar scanf e outras funcoes 
                                                             // no VisuaL Studio
/******************************************************************************
                            Online C Compiler.
                Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*#include <iomanip>   em linguagem  C não tem esses include's não
  #include <iostream>  só em C++
  #include <vector>
*/
int main()
{

    int   i=0,ret={};
    float peso  [1000]={0};                                  // pode ter no maximo 1000 cadastros
    float altura[1000]={0};                                  // ou usar alocaçao DinAmica , assim :
                                                             // float *peso = (float*)malloc(sizeof(float));
    int   cont=0, pessoas_mais_de_80kg=0;                    // e pode ter milhoes de cadastros
    int   pessoas_1Mt70_e_menos_60kg=0;
    int   cont3=0;
    float perc=0;
    // for (i = 0; i <= 1000; i++)
    do
    {
        printf("Digite  peso e altura: \n");
        LabeL_1:
            setbuf(stdin,NULL);                              // limpa o buffer
            ret = scanf("%f%f", &peso[cont], &altura[cont]); // pega o retorno de scanf
        if (ret == 0)                                        // se scanf não pegou nada 
                                                             // ou digitou letras ou simBoLos
            goto LabeL_1;                                    // volta no scanf para ler novamente
        if (peso[cont] <= 0 || altura[cont] <= 0)            // condicao para terminar a entrada de dados
        {
            break;                                           // sai desse loop 
        }
        cont++;                                              // incrementa o contador
    } while (true);                                          // Loop etheRno repete para Sempre
    for (i = 0; i < cont; i++)                               // pesquisar os dados nos vetores
    {
        if (altura[i] >= 1.70 && peso[i] <= 60)
        {
            pessoas_1Mt70_e_menos_60kg++;                    // contagem de pessoas com menos de 60 kg
        }                                                    // e com mais de 1.7 de altura
        if (peso[i] >= 80) 
        {
            pessoas_mais_de_80kg++;                          // contagem de pessoas com mais de 80 kg
        }
    }
    perc = pessoas_mais_de_80kg * 100 / cont;                // colocando esse calculo aqui , ele 
                                                             // será feito apenas uma vez , poupando
                                                             // trabalho para o compilador
    printf("\n\n");
    printf("O numero de pessoas que tem altura maior que 1.70m e pesam menos de 60kg eh -: %d\n", 
                                                                     pessoas_1Mt70_e_menos_60kg);
    printf("O percentual de pessoas com peso maior do que 80 kg eh ----------------------: %.2f", 
                                                                                           perc);
    printf("\n\n\n");
    return 512;
}

 

  • Curtir 1
Postado

@Maxavam O enunciado não exige vetores, então se o professor não pediu não precisa usar.

 

Só tem que incrementar duas variáveis com o critério para mostrar no fim com a quantidade de pessoas e na porcentagem de pesos > 80kg, p.ex,

 

    do{
        printf("Peso e altura: ");
        scanf("%d %f", &peso, &altura);
      
        if(altura > 0 && peso > 0){
            if(altura >= 1.70f && peso < 60){
                A += 1;
            }
            if(peso > 80){
                B += 1;
            }
            pessoas += 1;
        }
    }while(altura > 0 && peso > 0);
    
    printf(
        "Pessoas >= 1.70m e peso < 60kg = %d\n"
        "Pessoas com peso > 80kg = %.2f%%",
        A, (float)B/(float)pessoas * 100
    );

 

  • Obrigado 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!