Ir ao conteúdo
  • Cadastre-se

C Preciso de ajuda para criar um programa para ler peso e medir quilos em C


Maxavam

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Administrador

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
Link para o comentário
Compartilhar em outros sites

@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 . , ,   ,.    .!

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!