Ir ao conteúdo

Posts recomendados

Postado

quando executo ele roda, ai para quando escolho o numero do cadastro dentro do imc :/

 

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

#define MAX 20

struct aluno
{
          char nome[30];
          char email[30];
          double peso;
          float altura;
          float IMC;          
          int codigo;
};
          
        struct aluno valuno[20];    
void lis(){
    int i;
    for(i = 0; i< MAX; i++){
        printf(" %d: %s\n\n", i, valuno.nome);
        }
    }

void ex(){
    int codigo; 
    printf (" Digite o numero de cadastro para apagar ");
    scanf("%d", &codigo);
    sprintf(valuno[codigo].nome," ");
    }

    


int imc()
    {        
        int i, codigo;
        char nome[30];
        float altura=0, imc=0;    
        double peso=0;
                
    for(i = 0; i< MAX; i++){
            printf(" %d: %s\n\n", i, valuno.nome);
        }
        
            printf(" Digite o codigo do aluno para visualizar o IMC:");
            scanf("%f", codigo);
                    
                        peso = valuno[codigo].peso;  
                        altura = valuno[codigo].altura;
                        imc = peso/(altura*2);
                        
            if (imc < 18){
                printf("O seu IMC é %.2f e esta abaixo do peso\n",  imc);
                }
                
            if (imc == 18,5 && imc <=25){
               printf ("O seu IMC é %.2f e voce no peso ideal\n", imc);
               }
            
            if (imc == 25 && imc <=30){
               printf("O seu IMC é %.2f e voce esta acima do peso\n", imc);
               }
             
            if (imc == 30 && imc <=35){
               printf("O seu IMC é %.2f e voce esta com obsidade 1 grau\n", imc);
               }
               
            if (imc ==35 && imc <=40){
               printf("O seu IMC é %.2f e voce esta com obsidade 2 grau\n", imc);
               }
               
            if (imc >= 40 ){
               printf("O seu IMC é %.2f e voce esta com obsidade 3 grau\n", imc);
                   }            
    }

          
          
int main (){
    int opc, i;

    setlocale(LC_ALL, "Portuguese");
    
     do {
         system("cls");
        printf( " \t\t\t\t+------------------------------------+\n" );
        printf( " \t\t\t\t|---------CADASTRO DE ALUNOS---------|\n" );
        printf( " \t\t\t\t+------------------------------------+\n" );
        printf( " \t\t\t\t|------>(1)- Cadastra aluno          |\n" );
        printf( " \t\t\t\t|------>(2)- Listar alunos           |\n" );
        printf( " \t\t\t\t|------>(3)- Apagar aluno            |\n" );
        printf( " \t\t\t\t|------>(4)- Listar IMC do aluno     |\n" );
        printf( " \t\t\t\t|------>(0)- Sair                    |\n" );
        printf( " \t\t\t\t+------------------------------------+\n" );
        printf( " \t\t\t\t|-----------Digite a opcao-----------|>>>" );
        scanf( "%d", &opc );

    

    
    switch(opc) {
        
        case 1:
            for (i = 0; i <MAX; i++){
                
                int codigo;
                printf ("   +---------------------------------+\n");
                printf ("   |             CADASTRO            |\n");
                printf ("   +---------------------------------+\n");
                printf ("   |         Numero de cadastro      |>>>");
                scanf ("%d", &codigo);
                printf (" \n|-----------Nome do aluno---------|>>");
                  scanf ("%s", &valuno[codigo].nome);
                printf (" \n|----------Email do aluno---------|>>");
                  scanf ("%s", &valuno[codigo].email);
                printf (" \n|----------Peso do aluno----------|>>");
                  scanf ("%f", &valuno[codigo].peso);
                printf (" \n|----------Altura do aluno--------|>>");
                  scanf ("%f", &valuno[codigo].altura);
                
                if(opc == 0){
                    printf("Até logo...\n");
                    break;
                }
                
            
            break;
        case 2:lis();
          
            break;
          case 3 :ex();
              
              break;
          
    
        case 4 : imc();
            break;
    
        

        default:
            printf ("Opcao invalida\n");
            break;
        }
        system("pause");
    }
    
  }  while (1);
    return 0;
} 

 

Postado
31 minutos atrás, Marcelo Henrique Querino disse:

printf(" Digite o codigo do aluno para visualizar o IMC:");
            scanf("%f", codigo);

 @Marcelo Henrique Querino Olá. Nesse scanf faltou o operador '&' e outra é q a variável codigo está como um int e não como um float. Você está lendo como sendo um float.

 

  • Membro VIP
Postado

Mais uma observação. Sobre:

1 hora atrás, Marcelo Henrique Querino disse:

struct aluno
{
          char nome[30];
          char email[30];
          double peso;
          float altura;
          float IMC;          
          int codigo;
};

 

O IMC não é um atributo do aluno. É apenas um cálculo baseado em outros dados, ou seja, não precisa armazenar. Na hora que for usar o IMC, pega a altura e peso e calcula. Armazenar essa informação é redundância (desnecessária).

 

 

adicionado 8 minutos depois

PS: o código também não precisa armazenar... no contexto da sua lógica, é apenas a posição do vetor.

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!