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

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 llucaahenri
      Bom dia!
      Sou iniciante nessa área de programação, estou aprendendo sobre vetores e matrizes e gostaria de saber como faço para calcular elementos de um vetor e de uma matriz, eu tentei fazer usando laço For, mas não consegui.
      Esse exercício que estou tentando fazer.  
      Leia um vetor de 12 posições e em seguida ler também dois valores X e Y quaisquer correspondentes a duas posições no vetor. Ao final seu programa deverá escrever a soma dos valores encontrados nas respectivas posições X e Y.
      Meu código!
       
      #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() {     setlocale(LC_ALL, "Portuguese");     int VetorX[12], VetorY[12];     int Result, X, Y, i, j;     for(i = 1; i < 13; i++){ // Ler os Valores;         printf("[%d] Digite um número do Vetor X. \n", i);         scanf("%d", &X);     }     for(i = 1; j < 13; j++){ // Ler os Valores;         printf("[%d] Digite um número do Vetor Y. \n", j);         scanf("%d", &Y);     }         for(i = 0; i < 13; i++){             Result =+ VetorX;             printf("O resultado é%d", Result);         }     return 0; }
       
    • Por thisis_paulo
      Olá pessoal, sou iniciante tanto aqui no fórum tanto na linguagem c++.
      Estou tentando resolver o seguinte algoritmo:
       
      Calcule as médias das notas escolares de um aluno (media 1º bimestre, media 2º bimestre, media final) sendo que:
      As notas das provas parciais 1 e 2 equivalem a 30% da nota total do bimestre 1 e 2;
      As notas das provas oficiais 1 e 2 equivalem a 70% da nota total do bimestre 1 e 2;
      A nota total do bimestre 1 equivale a 40% da nota final do semestre;
      A nota total do bimestre 2 equivale a 60% da nota final do semestre;
       
      Utilize structs para armazenar a notas e medias e referencie cada elemento por ponteiros no main.
       
      Segue abaixo, a minha tentativa.
      Não estou conseguindo guardar as notas pedidas no main no vetor de notas dentro da struct, estou usando cin para fazer isso, uma solução mais adequada para realizar este procedimento?
       
      - Biblioteca
      typedef struct notas { float parcial[2], *p1, *p2; float oficial[2], *of1, *of2; float exame, *ex; } NotasProvas; void NotaBim1 (NotasProvas &notas, float *p1, float *of1); void NotaBim2 (NotasProvas &notas, float *p2, float *of2); void NotaExame (NotasProvas &notas, float *ex); typedef struct medias { float mediaB1, mediaB2, *m1, *m2; float notaFinal, *nf; float notaTotal, *nt; } MediasNotas; void MediaBim1 (MediasNotas &medias, float *m1); void MediaBim2 (MediasNotas &medias, float *m2); void MediaFinal (MediasNotas &medias, float *m1, float *m2); void MediaTotal (MediasNotas &medias, float *nf, float *ex);  
      - Procedimentos 
      #include "notas.h" void NotaBim1 (NotasProvas &notas, float *p1, *of1) { *p1 = &NotasProvas.parcial[1]; *of1= &NotasProvas.oficial[1]; MediasNotas.mediaB1 = (p1 * 0.3) + (of1 * 0.7); } void NotaBim2 (NotasProvas &notas, float *p2, *of2) { *p2 = &NotasProvas.parcial[2]; *of2 = &NotasProvas.oficial[2]; MediasNotas.mediaB2 = (p2 * 0.3) + (of2 * 0.7); } void MediaFinal (MediasNotas &medias, float *m1, *m2) { *m1 = &MediasNotas.mediaB1; *m2 = &MediasNotas.mediaB2; MediasNotas.notaFinal = (m1 * 0.4) + (m2 * 0.6); } void MediaTotal (MediasNotas &medias, float *nf, *ex) { *nf = &MediasNotas.notaFinal; *ex = &NotasProvas.exame; MediasNotas.notaTotal = (nf + ex) / 2; } - Função Main
      #include <iostream> #include "notas.h" using namespace std; int main() { cout << "\t\t CALCULANDO NOTAS " << endl; cout << endl; cout << "Qual a sua nota da Prova Parcial 01? " << endl; cin >> NotasProvas.p1; cout << "Qual a sua notas da Prova Oficial 01? " << endl; cin >> NotasProvas.of1; cout << "Nota do 1º bimestre: " << MediasNotas.m1 << endl; cout << "\t\t Segundo Bimestre" << endl; cout << endl; cout << "Qual a sua nota na Prova Parcial 02? " << endl; cin >> NotasProvas.p2; cout << "Qual a sua nota na Prova Oficial 02? " << endl; cin >> NotasProvas.of2; cout << "Nota do 2º bimestre: " << MediasNotas.m2 << endl; cout << "Media Final: " << MediasNotas.nf << endl; system("PAUSE"); return 0; } Desde já, agradeço pelas ajudas!
       
       
       
       
       
    • Por Hendrius Félix
      Estou na tentativa de fazer um menu interativo, mas estou com um problema. So fiz a primeira parte do login, e da erro quando o usuario nao possui cadastro... pf me ajudem
       
      obs: Trabalho é para fazer um "app", na vdd so uma amostra pra depois ser programado corretamente...
       
       
       
       
      #include <stdio.h> #include <stdlib.h> #include <locale.h> main() {     setlocale(LC_ALL, "Portuguese");     int opcao, desej;     char cadast_, email[20], senha[16], email_[20], senha_[16];          printf("\tBem vindo ao Home Service!\n");     printf("\t\t1.Login\n");     printf("\t\t2.Opções\n");     printf("\t\t3.Contato\n");     printf("\t\t4.Ajuda\n");     printf("\t\t5.Sair\n");     printf("\t\tOpção\n");     scanf("%d", &opcao);     fflush(stdin);          switch(opcao){         case 1: printf("\tVocê já possui cadastro\?\n");                 scanf("%s",&cadast_);                 switch(cadast_){                 case 'sim':                 case 'Sim':                 case 's':                 case 'S': printf("\t\tEmail: ");                            scanf("%s", &email);                           printf("\t\tSenha: ");                            scanf(" %s", &senha);                           printf("\n\t\tBem Vindo de volta!");                           printf("\n\t\tMenu");                           printf("\n\t\tServiços");                           printf("\n\t\tContato");                           printf("\n\t\tBuscar");                                                                 break;                 case 'nao':                 case 'n':                 case 'N':                 case 'Não':                 case 'não':                 case 'Nao': printf("\tDeseja se Cadastrar\?\n") ;                             scanf("%d", &desej);                             switch(desej)                             {                                 case 'sim':                                 case 'Sim':                                 case 's':                                 case 'S': printf("\t\tInsira seu Email: ");                                            scanf("%s", &email_);                                           printf("\t\tInsira sua Senha: ");                                            scanf(" %s", &senha_);                                           printf("Bem Vindo!");                                           printf("\t\t1.Menu");                                           printf("\t\t2.Serviços");                                           printf("\t\t3.Contato");                                           printf("\t\t4.Buscar"); break;                                case 'nao':                                case 'n':                                case 'N':                                case 'não':                                case 'Nao': printf("Ok, até mais...");break;                             }                 default: puts("Opção Invalida, tente novamente!");break;                 }         case 2: puts("");break;         case 3: puts("");break;         case 4: puts("");break;         case 5: puts("");break;         default: puts("Opção invalida, tente novamente!");break;     }      }  
    • Por Vincent da Silva
      Olá, eu quero criar um programinha para gerenciar campeonatos de um jogo que faço com meus amigos. Primeiro eu quero cadastrar as equipes, cada equipe tem sempre cinco jogadores e eu vou fazer um simples cadastro com o nome da equipe e os cinco jogadores. Depois eu quero criar um sistema que vai ser o principal para colocar as partidas. Quando eu for cadastrar o jogo (partida) eu vou selecionar duas equipes entre as que estão cadastradas e automaticamente o programa já vai colocar os jogadores, depois eu vou colocar os pontos, em cada ponto colocar a equipe e o jogador que marcou, aí o programa já soma o placar e depois que eu concluir os jogos vai gerar dois relatórios, um vai ser o ranking das equipes com vitórias e derrotas e o outro vai ser um ranking dos jogadores mostrando quantos pontos cada um marcou.
       
      O meu objetivo é que eu possa instalar esse programa no meu pc e se for preciso instalar em outro pc e ele armazene as equipes, os jogos, o ranking de equipes e jogadores e se possível eu até possa colocar uma pequena imagem com o símbolo de cada equipe para ilustrar o rankig igual nesses sites de esportes, mas eu não vou publicar na internet, apenas no PC e o mais importante é que eu possa fazer backup desses dados para eles não se perderem. Qual programa ou linguagem vocês recomendam para eu criar esse sistema com o banco de dados (equipes e jogos) e também para criar o programinha para inserir os resultados de cada partida?
       
      Eu costumava fazer isso no excel, mas agora quero deixar ele mais prático e automatizado. Eu sei que vou ter que estudar bastante para criar esse programa, mas eu só quero saber qual linguagem ou programa devo usar para estudar a coisa certa.
       
       

    • Por CarlosAdriano
      Faz um tempo (uns meses) eu encontrei uma ferramenta para C/C++ que eu não lembro o nome. É uma espécie de preprocessador, como se fosse uma extensão do preprocessador nativo do C/C++. Você escreve o código em arquivos com uma extensão própria do programa e ele usa esses arquivos como entrada, processa eles e gera arquivos de saída C/C++.  Parecido com o que SASS e LESS faz, só que para C/C++ e com mais recursos. Você chama ele pela linha de comando, como a maioria dos programas desse tipo. Se eu não me engano, ele permite você gerar versões diferentes do mesmo código de forma automatizada. Alguém sabe o nome desse software ?
×

Informação importante

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