Ir para conteúdo
Fórum Script Brasil
  • 0

IMC


leoleobispo

Pergunta

alquém pode me dizer como consertar esse programa.

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<locale.h>
#include<conio.h>

main()
{
    system("color 4f");
    setlocale(LC_ALL,"Portuguese");
    char nome[30];
    char sexo,M,F;
    int idade;
    float peso;
    float altura;
    float imc;
    int numero,contador=0;
    int registro=0;
    do
    {
    printf("\nESCOLHA AS OPÇÕES :\n");    
    printf("\n\tCADASTRO DE PESSOA  POR IMC\t\N");
    printf("1 - CADASTRAR UMA PESSOA:\N");
    printf("2 - VISUALIZAR RELATORIO DO IMC:\N");
    printf("3 - EXCLUIR CADASTRO:\N");
    printf("0 - SAIR\N");
    printf("Digite a opção:");
    scanf("%i", & numero);
    switch (numero)
    {
 case1:
     system("cls");
    printf("\N------INICIANDO O CADASTRO------------:\N ");
    printf("QUAL O SEXO DA PESSOA ?(M/F)\n");
printf("Digite o sexo (letra MAIÚSCULA): \n");
scanf("%c",&sexo);
printf("Digite o seu nome: \n");
scanf("%s",&nome);
printf("Digite a idade: \n");
scanf("%d",&idade);
printf("Digite o seu peso: \n");
scanf("%f", &peso);
printf("Digite a sua altura: \n");
scanf("%f", &altura);
contador++;
if(sexo=='M'||'F')
{
printf("sexo valido\n");
}
else{
printf("sexo invalido\n");    
}
imc = peso /(altura*altura);
if(imc<=18)
{
    printf("O seu índice de massa corporal é %.2f e você está abaixo do peso", imc);
}
if(imc>18 &&imc <=25)
{
    printf("O seu índice de massa corporal é %.2f e está normal\n",imc);  
}
if(imc>25 &&imc <=30)
{
printf("O seu índice de massa corporal é %.2f e você está com excesso de peso \n", imc);
}
if(imc>30 &&imc <=35)
{
    printf("O seu índice de massa corporal é %.2f e você está com obesidade grau um\n", imc); 
}
if(imc>35 &&imc <=40)
{
    printf("O seu índice de massa corporal é %.2f e você está com obesidade grau dois", imc);
}
if(imc>40)
{
    printf("O seu índice de massa corporal é %.2f e você está com obesidade grau três", imc);
}
printf("\n------------------------------------------------------------------------------------------------\n");
     printf("SE DEJESA CONTINUAR APERTE 1 OU QUALQUER TECLA PRA SAIR\N");
    break;    
      }    
    case2: {
        break;
        system("cls");
     printf("Sexo: %c\n", sexo);
     printf("Nome: %s\n", nome);
     printf("Peso: %f\n", peso);
     printf("Altura: %f\n", altura);
     printf("Idade: %i\n", idade);
     printf("Imc: %f\n", imc);
    printf(nome," TEM ", idade," ANOS, SEU PESO É ",peso," KILOS, SUA ALTURA É ",altura,"SEU PESO É",peso,", E SEU ÍNDICE DE MASSA CORPORAL É ",imc);
    if(imc<=18)
{
    printf("O seu índice de massa corporal é %.2f e você está abaixo do peso", imc);
}
if(imc>18 &&imc <=25)
{
    printf("O seu índice de massa corporal é %.2f e está normal\n",imc);  
}
if(imc>25 &&imc <=30)
{
printf("O seu índice de massa corporal é %.2f e você está com excesso de peso \n", imc);
}
if(imc>30 &&imc <=35)
{
    printf("O seu índice de massa corporal é %.2f e você está com obesidade grau um\n", imc); 
}
if(imc>35 &&imc <=40)
{
    printf("O seu índice de massa corporal é %.2f e você está com obesidade grau dois", imc);
}
if(imc>40)
{
    printf("O seu índice de massa corporal é %.2f e você está com obesidade grau três", imc);
}
         printf("SE DEJESA CONTINUAR APERTE 1 OU QUALQUER TECLA PRA SAIR\N");
        break;
    }
    case3:{

    system("cls");
    sexo,M,F[0]='\0';
    nome[0]='\0';
    peso[0]='\0';
    altura[0]='\0';
    idade[0]='\0';
    imc[0]='\0';
    
    printf("\t----------CADASTRO EXCLUÍDO----------\N\N");
    system ("pause");
    system("cls");
    break;
        }
    case 0:{
    default:
    printf("OPÇÃO INVÁLIDA!\n");
    system("cls");
    break;
    } 
    while(1==1);
    system("PAUSE");
    return(0);
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá, consegui fazer o projeto ao menos funcionar, haviam muitos erros envolvendo as chaves e alguns de sintaxe. Mudei o seu scanf para o std::cin que eu estou acostumado a utilizar para evitar problemas, mas acredito que o que você havia feito também está correto

* DEIXEI VARIAS ANOTAÇÕES NO FINAL DO CÓDIGO, VEJA *.

Uma dica: ORGANIZE, SEMPRE! Minha maior dificuldade foi colocar tudo no devido lugar pra entender onde estava os problemas. Creio que assim como eu você está iniciando nos estudos de C++, então boa sorte. Se te ajuda, recomendo o canal "CFB Cursos" no youtube, lá tem uma série de vídeos incrível em um curso de C++ com o professor bruno.

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <conio.h>
#include <iostream>
main()
{
    system("color 4f");
    setlocale(LC_ALL,"Portuguese");
    char nome[30];
    char sexo,M,F;
    int idade;
    float peso;
    float altura;
    float imc;
    int numero = -1;
    int contador=0;
    int registro=0;
    printf("\nESCOLHA AS OPÇÕES :\n");
    printf("\n\tCADASTRO DE PESSOA  POR IMC\t\n");
    printf("1 - CADASTRAR UMA PESSOA:\n");
    printf("2 - VISUALIZAR RELATORIO DO IMC:\n");
    printf("3 - EXCLUIR CADASTRO:\n");
    printf("0 - SAIR\n");
    printf("Digite a opção:");
    std::cin >> numero;
    switch(numero)
    {
    case 1:
        {
        system("cls");
        printf("\n------INICIANDO O CADASTRO------------:\n ");
        printf("QUAL O SEXO DA PESSOA ?(M/F)\n");
        printf("Digite o sexo (letra MAIÚSCULA): \n");
        scanf("%c",&sexo);
        printf("Digite o seu nome: \n");
        scanf("%s",&nome);
        printf("Digite a idade: \n");
        scanf("%d",&idade);
        printf("Digite o seu peso: \n");
        scanf("%f", &peso);
        printf("Digite a sua altura: \n");
        scanf("%f", &altura);
        contador++;
        if(sexo=='M'||'F')
        {
            printf("sexo valido\n");
        }
        else
        {
        printf("sexo invalido\n");
        }
        imc = peso /(altura*altura);
        if(imc<=18)
        {
            printf("O seu índice de massa corporal é %.2f e você está abaixo do peso", imc);
        }
        if(imc>18 &&imc <=25)
        {
            printf("O seu índice de massa corporal é %.2f e está normal\n",imc);
        }
        if(imc>25 &&imc <=30)
        {
        printf("O seu índice de massa corporal é %.2f e você está com excesso de peso \n", imc);
        }
        if(imc>30 &&imc <=35)
        {
            printf("O seu índice de massa corporal é %.2f e você está com obesidade grau um\n", imc);
        }
        if(imc>35 &&imc <=40)
        {
            printf("O seu índice de massa corporal é %.2f e você está com obesidade grau dois", imc);
        }
        if(imc>40)
        {
            printf("O seu índice de massa corporal é %.2f e você está com obesidade grau três", imc);
        }
        printf("\n------------------------------------------------------------------------------------------------\n");
             printf("SE DEJESA CONTINUAR APERTE 1 OU QUALQUER TECLA PRA SAIR\n");
            break;
        }
    case 2: {
        system("cls");
        printf("Sexo: %c\n", sexo);
        printf("Nome: %s\n", nome);
        printf("Peso: %f\n", peso);
        printf("Altura: %f\n", altura);
        printf("Idade: %i\n", idade);
        printf("Imc: %f\n", imc);
        printf(nome," TEM ", idade," ANOS, SEU PESO É ",peso," KILOS, SUA ALTURA É ",altura,"SEU PESO É",peso,", E SEU ÍNDICE DE MASSA CORPORAL É ",imc);

        if(imc <= 18)
        {
            printf("O seu índice de massa corporal é %.2f e você está abaixo do peso", imc);
        }
        if(imc>18 &&imc <=25)
        {
            printf("O seu índice de massa corporal é %.2f e está normal\n",imc);
        }
        if(imc>25 &&imc <=30)
        {
            printf("O seu índice de massa corporal é %.2f e você está com excesso de peso \n", imc);
        }
        if(imc>30 &&imc <=35)
        {
            printf("O seu índice de massa corporal é %.2f e você está com obesidade grau um\n", imc);
        }
        if(imc>35 &&imc <=40)
        {
            printf("O seu índice de massa corporal é %.2f e você está com obesidade grau dois", imc);
        }
        if(imc>40)
        {
            printf("O seu índice de massa corporal é %.2f e você está com obesidade grau três", imc);
        }
        printf("SE DEJESA CONTINUAR APERTE 1 OU QUALQUER TECLA PRA SAIR\n");
        break;
    }

    case 3:
    {
        system("cls");
        sexo='\0';
        nome[0]='\0';
        peso='\0';
        altura='\0';
        idade='\0';
        imc='\0';

        printf("\t----------CADASTRO EXCLUÍDO----------\n\n");
        system ("pause");
        system("cls");
        break;
    }
    case 0:
    {
        default:
        printf("OPÇÃO INVÁLIDA!\n");
        system("cls");
        break;
    }
        
  } // FECHA O SWITCH
    system("pause");
    return 0;
} // FECHA A FUNÇÃO MAIN



/*

* Faltava a ultima chave da função main
* As condições do switch estavam juntas (case1, case2), etc [NÃO SEI SE ISTO É CORRETO, então separei para "case 1, case 2, etc"])
* sexo não é um vetor, portanto para atribuir valor à variavél basta indicar "sexo = '/0'" [A mesma coisa se aplica para as
variaveis peso, altura, idade e imc]. No caso da variavel nome você está atribuindo apenas o "/0" ao primeiro elemento do vetor STRING, esteja ciente disso.
* Você definiu um "do/while" e não colocou a condição de repetição no "while" apos o "do".
* Você utilizou o "break" logo após o case na estrutura switch
* Havia um "while(1==1)" no final, retirei pois não fazia nenhum sentido ele estar ali
* Você colocou o valor do return entre parenteses, isto não é necessario no C++, apenas defina o valor de retorno após chamar o "return"
* Imagino que você se confundiu tanto com o projeto que colou varias das chaves "{ e }" em locais totalmente aleatórios, o switch por exemplo terminava antes de
chegar ao próximo case.
* A falta de organização foi seu maior erro, um projeto organizado te ajuda E MUITO a achar problemas e/ou pedir ajuda a outras pessoas. 


*/

 

Editado por bleszerd
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...