Ir ao conteúdo

Posts recomendados

Postado

Estou voltando a estudar programação, pois somente tinha visto na faculdade alguns anos atrás.

Na época tinha feito um programa que calcula o IMC (índice de massa corporal), pode até ser algo "infantil" para programadores experientes, mas para "novatos" como eu creio que já é muita coisa.

Então, o programa na forma mais "simples" cumpre o papel de realizar o cálculo e mostrar o resultado, mas agora eu quero melhorar o programa para que depois de mostrar o resultado o programa dê as opções para que o usuário escolha se quer fazer um novo cálculo ou apenas sair do programa.

Já tentei de várias formas e o mais perto que consegui chegar foi fazer o programa ficar dando voltas se pressionado qualquer tecla.

PEÇO UMA AJUDA POR FAVOR!!!

Segue o código:

 

#include <stdio.h>int main (){    float peso, altura, IMC;    char y, n, ch; // *Opções a serem digitadas. *//    printf("\t\tEste %c um programa que calcula o IMC\n",130);    printf("\t\t\"INDICE DE MASSA CORPORAL\".\n");    printf("E informa se voce est%c\n",160);    printf("Abaixo do peso, no Peso ideal, com Sobrepeso, Obeso ou com Obesidade m%crbida.\n",162);    printf("Digite o seu peso: \n");    scanf("%f", &peso);    printf("Digite sua altura: \n");// *A altura deve ser digitada em metros. *//    scanf("%f", &altura);    {    IMC = peso/(altura*altura);    printf("Seu IMC e %.1f.\n\n", IMC);                if(IMC <= 18.5)                printf("Voc%c est%c Abaixo do peso.\n\n",136,160);                else if(IMC <= 24.9)                printf("Voc%c est%c no Peso ideal.\n\n",136,160);                else if(IMC <= 29.9)                printf("Voc%c est%c com Sobrepeso.\n\n",136,160);                else if(IMC <= 39.9)                printf("Voc%c est%c Obeso.\n\n",136,160);                else                printf("Voc%c est%c com Obesidade M%crbida.\n\n",136,160,162);                 {                     //* Opção para se realizar uma nova medição. *//                printf ("Deseja realizar nova medi%c%co%c\n\n",135,198,63);                printf ("Tecle %c para sim\n\n",89);                printf ("Tecle %c para n%co e sair do programa\n\n",78,198);                                ch=getch();                scanf ("%c", &y, &n);                if (y)//* Opção deve retornar para uma nova medição. *//                return main();                }                         return 0;}}

 

  • Curtir 1
  • Moderador
Postado

@Everton-ufrn,

 

Não entendo de C, mas por padrão de linguagem, acho que  dá para utilizar o while ou  um do while, para testar a se o charfoi digitado no console.. forçando o programar encerrar 

Postado

@Everton-ufrn

 

Como o @dif disse, use o do-while.

 

Ex:

#include <stdio.h>#include <conio.h> //para o getche();//Costante para "limpar" a tela... windows "cls", linux "clear"#define LIMPAR "cls"int main(){    float peso, altura, IMC;    char op;    do    {       system(LIMPAR);              /*         ...        Seu código         ...       */       printf ("Deseja realizar nova medi%c%co%c (S/N):\n\n",135,198,63);       op = getche();          //Enquanto op for igual a 's' ou 'S', continue... Se for diferente, ele encerra...    }while (op  == 's' || op == 'S');    return 0;}
  • 3 anos depois...
Postado

Ai está um programa que eu escrevi em C que, o usuário informando sua Massa em KG e sua altura, o programa calcula o IMC do usuário e ainda indica sua faixa. Se está: Muito abaixo do peso, Abaixo do peso, Peso Normal, Acima do Peso, Obeso, Obeso Severo ou com Obesidade morbida. Tudo foi feito encadeando IF... dentro de IF..., claro que tem outras formas de faze-lo. Mas eu quis fazer esta brincadeira e deu muito certo.
 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>//Utilizei a Biblioteca math.h para utilizar o comando operador pow(n,n), para exponenciar a altura por 2.

int main()
{
    float massa, altura, _IMC;

    printf("Digite sua Massa (Kg): ");
    scanf("%f",&massa);
    printf("Digite sua Altura (Metros): ");
    scanf("%f",&altura);

    _IMC = massa/(pow(altura,2));//Aqui utilizei o comando pow(n,n) para exponenciar a variável altura por 2, para chegar ao calculo de IMC.

    printf("-----------------------------------\n");//Aqui criei uma formatação de uma linha divisória para separar os resultados.
    printf("Seu IMC e: %0.2f\n",_IMC);

    if(_IMC<17)
    {
        printf("Muito abaixo do peso.\n");
    }
    else
    {
        if(_IMC>17 && _IMC<18.49)
        {
            printf("Abaixo do peso.\n");
        }
        else
        {
            if(_IMC>18.5 && _IMC<24.99)
            {
                printf("Peso normal.\n");
            }
            else
            {
                if(_IMC>25 && _IMC<29.99)
                {
                    printf("Acima do peso.\n");
                }
                else
                {
                    if(_IMC>30 && _IMC<34.99)
                    {
                        printf("voce esta Obeso.\n");
                    }
                    else
                    {
                        if(_IMC>35 && _IMC<39.99)
                        {
                            printf("Obesidade Severa.\n");
                        }
                        else
                        {
                            if(_IMC>40)
                            {
                                printf("voce esta em Obesidade MORBIDA.\n");
                            }
                        }
                    }
                }
            }
        }
    }

    return 0;
}

 

  • 3 anos depois...

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!