Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

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