Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Marcelo Henrique Querino

C IMC parando o programa

Recommended Posts

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;
} 

 

Editado por DiF
Botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×