Ir para conteúdo
brunaborgesa

Ajuda com Algoritmo IMC

Recommended Posts

Ola gente, preciso fazer um programa usando o labwindows em C para calculo de IMC. O programa que fiz só mostra como resultado "Abaixo do peso" bem rápido e depois fecha o executável. Segue abaixo o programa, se alguem puder me dizer onde está o erro.

PRovavelmente é algum uso errado de getchar, nao sei.

#include <ansi_c.h>
int main ()
{
float peso, altura, a, imc;
printf ("este programa calcula o IMC \n");
printf ("Digite seu peso \n");
scanf ("%f", &peso);
getchar () ;
printf ("Digite sua altura \n");
scanf ("%f" , &altura);
getchar () ;
a=(altura*altura);
imc=(peso/a);
if (imc<=17)
{
printf("Muito abaixo do peso\n");
getchar ();
}
else if ((imc>17) && (imc<=18,49))
{
printf ("Abaixo do peso \n");
getchar ();
}
else if ((imc>18,49) && (imc<=24,99))
{
printf ("Peso normal \n");
getchar ();
}
else if ((imc>24,99) && (imc<=29,99))
{
printf ("Acima do peso \n");
getchar ();
}
else if ((imc>29,99) && (imc<=34,99))
{
printf ("Obesidade I \n");
getchar ();
}
else if ((imc>34,99) && (imc<=39,99))
{
printf ("Obesidade II (severa) \n");
getchar ();
}
else
{
printf ("Obesidade III (morbida) \n");
getchar ();
}
getchar ();
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

scanf ("%f%*c", &peso);

scanf ("%f%*c", &altura);

E tente colocar só um getchar() no final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua sem funcionar :( não importa qual valor eu coloque para altura ou peso, o resultado é sempre o mesmo "Abaixo do peso" e fecha direto o programa, mesmo usando apenas o getchar() do final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Bem, acho que nem era preciso, mas dei uma compilada rapida aqui e me foram retornados os seguintes erros e alertas:

- Aqui no meu caso a biblioteca em questão parece não ser suportada.

|1| fatal error: ansi_c.h: Arquivo ou diretório não encontrado

- Ao que parece este alerta parece estar se referindo ao fato de que voce está usando uma virgula ( , ) como separador decimal, quando o correto seria ponto ( . )

|32|warning: left-hand operand of comma expression has no effect 

Acho que com as correções e dicas o codigo vai rodar . . .

Ubuntu 14.04 - GCC 4.8.4 CodeBlocks 13.12

Espero Ter Ajudado ! ! !

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 09/09/2016 at 20:47, Felipe-Petrópolis disse:

Acho que com as correções e dicas o codigo vai rodar . . .

Ubuntu 14.04 - GCC 4.8.4 CodeBlocks 13.12

Espero Ter Ajudado ! ! !

É verdade. Na linguagem C deve-se utilizar pontos e não vírgulas para separar as casas dos valores decimais. Se não fizer isso vai dar erro durante a compilação e o programa não será criado e nem executará.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por Xinitrc
      Estou fazendo ainda em design uma calculadora de decimo terceiro salário em QT Creator com linguagem C com GTK.
       
      Tem 3 TextEdit
      Tem 3 Labels
      Tem 3 Buttons
       
      Botão Calcular
      Botão Apagar
      Botão Sair
       
      O botão calcular deve calcular da seguinte maneira
       
      TextEdit3=TextEdit1 * TextEdit2/12, que vai dar o decimo terceiro salário,a logica está certa,mas não está funcionando meu programa no QT Creator.
       
      Alguém pode me ajudar?
    • Por novo na programação
      O sistema consiste em ler os dados cadastrados (valores estáticos) de uma entrevista e
      fornecer as informações para as seguintes perguntas:
       
      1 - Quantidade de mulher e homens na área? (% de cada sexo)
      2 - Faixa etária? (Menor e maior idade por sexo). Criar um vetor idade para cada sexo.
      3 - Quem ganha mais? Homem ou Mulher? (Comparar médias de salários)
      4 - Quem é mais especializado? (Comparar quantidade com pós-graduação %)
       
      Ex1. Perguntas?
      Sexo (1- H, 2-M)
      Idade (?)
      Salário (?)
      Possui pós-graduação? (1-S, 2-N)

      Entrada (estática)

      Entrevistado 1
      Sexo = 1
      Idade = 19
      Salário = 4.000,00
      Possui pós-graduação = 2

      Entrevistado 2
      Sexo = 2
      Idade = 25
      Salário = 3.000,00
      Possui pós-graduação = 1

      Entrevistado 3
      Sexo = 1
      Idade = 18
      Salário = 5.000,00
      Possui pós-graduação = 2

      Entrevistado 4
      Sexo = 1
      Idade = 23
      Salário = 6.000,00
      Possui pós-graduação = 1 

      Entrevistado 5
      Sexo = 2
      Idade = 30
      Salário = 2.000,00
      Possui pós-graduação = 1

      SAÍDA
      1 - Quantidade de mulher e homens na área?
      60% homens e 40% mulheres
      2 - Faixa etária?
      homens (18-23) e mulheres (25-30)
      3 - Quem ganha mais? Homem ou Mulher?
      Homens (média 5.000,00) e Mulheres (média 2.500,00)
      4 - Quem é mais especializado?
      homens - 33% e mulheres - 100%
      Cálculo = qtdhomens com pós/qtdhomens *100
    • Por makioplayer
      A pressão da minha mesa não está funcionando apenas no Paint Tool SAI, alguém sabe o que pode ser?
       
      Ela é uma Genius mousepen i608x.
    • Por JoaoV-26
      olá,
       
      Eu preciso fazer uma matriz 7x7 que imprima caractere 'x' e 'o' porém o x precisar ser nas duas diagonais, fazer a matriz e imprimir o x em uma diagonal eu consegui porém não estou conseguindo de jeito nenhum imprimir na outra diagonal, a matriz precisa sair assim: 
       
      x o o o o o x
      o x o o o x o
      o o x o x o o 
      o o o x o o o
      o o x o x o o
      o x o o o x o
      x o o o o o x
       
      a minha está saindo assim (foto em anexo)
       
      Meu código:

       
      #include<stdio.h> int main(){          int i, j;     char str[2]="x", str1[2]="o";                for(i=1; i<=7; i++){         for(j=1;j<=7; j++)              if(i+j == 7+1){                      printf("%s", str);                      }else                      printf("%s", str1);                      printf("\n");          }      } Alguém pode me ajudar, como faço para outra diagonal sair 'x' também ?????

    • Por Gsn99
      Olá!
       
      Alguém conhece algum programa que faz cortes em vídeos com essa função?  -> Nós usuários que escolhemos quantas vezes o video deve ser cortado, adicionando apenas o número de vezes que deve o vídeo ser cortado, em várias tamanho uniformes que se ajustam de acordo com o número de vezes que foi inserido pelo usuário. Obrigado pela atenção.
       
       
      Hello!

      Someone know of some program that make cuts in videos with this funccion ? -> We users that will choice how many times  the video must be cut, adding just a number of times that it must be cut. Example: The user choice 3 times and then the program devide the video in three parts with length uniform. I Apologize you about my English.
      Thank you.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.