Copy Paste Code . com

personal pastebin - debug, share, develop, store

Post Code
Archive

Latest code
ToTeste
06. Jan - C
lasseters online casino
06. Jan - JavaScript
guide
06. Jan - Smalltalk
tips
06. Jan - C#
asd
06. Jan - C
Project
05. Jan - C++
oracle de merdouille :/
05. Jan - MySQL
Wiremod - Jumper
05. Jan - Text
visit now
05. Jan - CSS
yiPPpAfkW
04. Jan - JavaScript

Code: 2º GQ Ana Eliza, 2008.1

Posted by rafael on 03:40 04. Dec.
Syntax: C

  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <ctype.h>
  4.  
  5. float IMC (float peso, float altura){
  6.         return peso / pow(altura,2);
  7. }
  8.  
  9. void situacao (float imc){
  10.         printf("Situacao: ");
  11.  
  12.         if(imc < 18.5)
  13.                 printf("Abaixo do Peso");
  14.         else if (imc > 25)
  15.                 printf("Acima do Peso");
  16.         else
  17.                 printf("Peso normal");
  18.  
  19.         printf("\n");
  20. }
  21.  
  22. // Retorna , em x e y, a porcentagem (em decimal) do que deve ser perdido/ganho em relação ao peso da pessoa
  23. void recomendacao (float imc, float *x, float *y){
  24.     if (imc < 18.5){
  25.         *x =  18.5 / imc - 1;
  26.                 *y = 25 / imc - 1;
  27.     } else if (imc > 25){
  28.         *x = 1 - 18.5 / imc;
  29.                 *y = 1 - 25 / imc;
  30.     } else {
  31.                 *x = 0;
  32.                 *y = 0;
  33.         }
  34. }
  35.  
  36. void somarPeso (float peso, int *totalPessoas, float *somaPesos){
  37.         *totalPessoas = *totalPessoas + 1;
  38.         *somaPesos = *somaPesos + peso;
  39. }
  40.  
  41. void main (){
  42.         float peso, altura, imc, pesoMedioAbaixo = 0, pesoMedioNormal = 0, pesoMedioAcima = 0, p_Min, p_Max;
  43.         int totalPessoas = 0, pessoasAbaixo = 0, pessoasNormal = 0, pessoasAcima = 0;
  44.         char continuar;
  45.  
  46.         do {
  47.  
  48.                 totalPessoas++;
  49.  
  50.                 do {
  51.                         printf("Informe o peso da pessoa (kg): ");
  52.                         scanf("%f", &peso);
  53.                         if (peso < 3 || peso > 300) printf("## PESO INVALIDO ## Informe pesos na faixa de 3 a 300 kg ##\n");
  54.                 } while (peso < 3 || peso > 300);
  55.  
  56.                 do {
  57.                         printf("Informe a altura da pessoa (metros): ");
  58.                         scanf("%f", &altura);
  59.                         if (altura < 0.5 || altura > 3) printf("## ALTURA INVALIDO ## Informe alturas na faixa de 0.5 a 3 metros ##\n");
  60.                 } while (altura < 0.5 || altura > 3);
  61.  
  62.         imc = IMC (peso, altura);
  63.                 if(imc < 18.5)
  64.                         somarPeso (peso, &pessoasAbaixo, &pesoMedioAbaixo);
  65.                 else if (imc > 25)
  66.                         somarPeso (peso, &pessoasNormal, &pesoMedioNormal);
  67.                 else
  68.                         somarPeso (peso, &pessoasAcima, &pesoMedioAcima);
  69.  
  70.                 printf("\n## ANALISE DA PESSOA %i ##\n", totalPessoas);
  71.                 printf("   Peso: %f\n", peso);
  72.                 printf("   Altura: %f\n", altura);
  73.                 printf("   IMC: %f\n", imc);
  74.  
  75.                 printf("   ");
  76.                 situacao (imc);
  77.                 recomendacao (imc, &p_Min, &p_Max);
  78.                 p_Min = peso * p_Min;
  79.                 p_Max = peso * p_Max;
  80.                 if(p_Min != 0 && p_Max != 0){
  81.                         printf("Recomendacao: ");
  82.                         if (imc < 18.5)
  83.                                 printf("Ganhar entre %f kg e %f kg\n", p_Min, p_Max);
  84.                         else
  85.                                 printf("Emagrecer entre %f kg e %f kg\n", p_Max, p_Min);
  86.                 }
  87.  
  88.                 do {
  89.                         printf("\nDeseja analisar a situacao de outra pessoa (S=Sim/N=Nao)? ");
  90.                         continuar = toupper(getchar());
  91.                         if (continuar != 'S' && continuar != 'N') printf("## RESPOSTA INVALIDA ##\n");
  92.                 } while (continuar != 'S' && continuar != 'N');
  93.  
  94.         } while (continuar == 'S');
  95.  
  96.     if (pessoasAbaixo != 0)
  97.         pesoMedioAbaixo = pesoMedioAbaixo / pessoasAbaixo;
  98.     if (pessoasNormal != 0)
  99.         pesoMedioNormal = pesoMedioNormal / pessoasNormal;
  100.     if (pessoasAcima != 0)
  101.         pesoMedioAcima = pesoMedioAcima / pessoasAcima;
  102.  
  103.         printf("\n## DADOS FINAIS ##\n");
  104.         printf("   Numero de pessoas analisadas: %i\n", totalPessoas);
  105.         printf("   Numero de pessoas abaixo do peso: %i\n", pessoasAbaixo);
  106.         printf("   Numero de pessoas com peso normal: %i\n", pessoasNormal);
  107.         printf("   Numero de pessoas acima do peso: %i\n", pessoasAcima);
  108.         printf("   Peso medio das pessoas analisadas abaixo do peso: %f\n", pesoMedioAbaixo);
  109.         printf("   Peso medio das pessoas analisadas com peso normal: %f\n", pesoMedioNormal);
  110.         printf("   Peso medio das pessoas analisadas acima do peso: %f\n", pesoMedioAcima);
  111. }
  112.  
  113.  

New comment