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:  
Alexandre Tarouco

C programa em C para faculdade

Recommended Posts

Boa noite pessoal.....

Tenho que desenvolver um programa em C

Suponha que você foi contratado por uma academia que está preocupada em acompanhar a saúde de todos os seus alunos. Portanto, você vai precisar criar para eles uma estrutura de cadastro de alunos que possa guardar o nome, o e-mail, o peso e a altura de cada aluno. Considere que essa academia nunca vai ter mais do que 20 alunos (a gente nunca pode garantir isso no mundo real, mas podemos garantir nesse mundo imaginário, controlado, considerando que só existem 20 pessoas no mundo).

Então você pensou muito a respeito e decidiu fazer da seguinte forma:

* Uma estrutura chamada Aluno onde será armazenado nome, e-mail, peso e altura.
* Um vetor de 20 posições que armazenará as estruturas.
* Uma tela de menu, que terá as seguintes opções:

1. Cadastra aluno (apenas 1, escolhendo a posição de 1 a 20).
2. Listar alunos.
3. Apagar aluno (pode apagar pela posição na lista).
0. Sair.

O programa deve permanecer em execução até o usuário escolher a opção "Sair".

adicionado 16 minutos depois
#include<stdlib.h>
#include<conio.h>
#include<string.h>

struct aluno
{
          char nome[30];
          char email[30];
          float peso;
          float altura;
          float IMC;
};
          
          struct aluno cadaluno[20];    
          
          
int main (){
    int opcao, i;
    
    do {
    printf("+----CADASTRO DE ALUNOS------+\n");
    printf("------------------------------\n\n");
    
    printf("Digite uma opcao : \n");
    printf("1- Cadastra aluno\n");
    printf("2- Listar alunos\n");
    printf("3- Apagar aluno\n");
    printf("4- Listar IMC de alunos\n");
    printf("0- Sair\n");
    scanf("%d", opcao);
    
    switch(opcao) {
        
        case 1:
            for (i = 0; i <20; i++){
                fflush(stdin);
                printf ("\n Digite nome do aluno:");
                scanf ("%s", &cadaluno.nome);
                fflush(stdin);
                printf ("\n Digite o email do aluno:");
                scanf ("%s", &cadaluno.email);
                fflush(stdin);
                printf ("\n Digite o peso do aluno: ");
                scanf ("%f", &cadaluno[1].peso);
                fflush(stdin);
                printf ("\n Digite a altura do aluno: ");
                scanf ("%f", cadaluno.altura);
                fflush(stdin);
                
            }
            break;
        case 2:
            for (i = 0; i <20; i++) {
                printf("d: %s - %s - %2f - %2f - %2f",
                i, cadaluno.nome, cadaluno.email, cadaluno.peso,
                cadaluno.altura, cadaluno.IMC);    
            }
            break;
        case 3 :
            break;
        case 4 :
            break;
        case 0 :
            break;
        default:
            printf ("Opcao invalida\n");
            break;
    }
    
} while (1 == 1);    
    
    return 0;
} 

 

Editado por Simon Viegas
Inserir tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem simples, tirando o papo das estruturas o que sobre é manipulação de vetores.

Qual o problema?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Alexandre Tarouco Olá. Se puder postar o código usando o botão <> (Code) ajudaria muito

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia minha assinatura abaixo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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

struct aluno
{
          char nome[30];
          char email[30];
          float peso;
		  float altura;
		  float IMC;
};
          
          struct aluno cadaluno[20];	
          
          
int main (){
	int opcao, i;
	
	do {
	printf("+----CADASTRO DE ALUNOS------+\n");
	printf("------------------------------\n\n");
	
	printf("Digite uma opcao : \n");
	printf("1- Cadastra aluno\n");
	printf("2- Listar alunos\n");
	printf("3- Apagar aluno\n");
	printf("4- Listar IMC de alunos\n");
	printf("0- Sair\n");
	scanf("%d", opcao);
	
	switch(opcao) {
		
		case 1:
			for (i = 0; i <20; i++){
				fflush(stdin);
				printf ("\n Digite nome do aluno:");
				scanf ("%s", &cadaluno[i].nome);
				fflush(stdin);
				printf ("\n Digite o email do aluno:");
				scanf ("%s", &cadaluno[i].email);
				fflush(stdin);
				printf ("\n Digite o peso do aluno: ");
				scanf ("%f", &cadaluno[1].peso);
				fflush(stdin);
				printf ("\n Digite a altura do aluno: ");
				scanf ("%f", cadaluno[i].altura);
				fflush(stdin);
				
			}
			break;
		case 2:
			for (i = 0; i <20; i++) {
				printf("d: %s - %s - %2f - %2f - %2f",
				i, cadaluno[i].nome, cadaluno[i].email, cadaluno[i].peso,
				cadaluno[i].altura, cadaluno[i].IMC);	
			}
			break;
		case 3 :
			break;
		case 4 :
			break;
		case 0 :
			break;
		default:
			printf ("Opcao invalida\n");
			break;
	}
	
} while (1 == 1);	
	
	return 0;
}

 

adicionado 1 minuto depois

Estou começando programar agora segundo mes e tenho que fazer este trabalho para entregar dia 26.06 e tá difícil...

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Alexandre Tarouco Olá. Tem um erro no scanf para ler a opção do menu digitada pelo usuário. Faltou o operador &:

scanf("%d", &opcao);

Obrigado por postar o código já usando o botão <> como fez!

Editado por giu_d
corrigir comentário
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, Alexandre Tarouco disse:

 

tabém no scanf ("%f", cadaluno.altura); falta o & scanf ("%f", &cadaluno.altura);

adicionado 1 minuto depois

Estou começando programar agora segundo mes e tenho que fazer este trabalho para entregar dia 26.06 e tá difícil...

@giu_d

adicionado 6 minutos depois

esse programa quando você terminar de cadastrar um aluno e fica todo tempo cadastrando novo aluno, não tem a opção de mudar o o que eu desejo fazer depois ou mudar se eu tiver escolhido a opção errada

adicionado 7 minutos depois

vai ficar massa se você fizer isso, vou tentar aqui

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realize todas as mudação pospostas @Alexandre Tarouco

 

Abaixo segue apenas os fragmentos com as observações parciais

#include<stdio.h>
#include<stdlib.h>
/* Foram desativados por motivo deuso momentaneo */
//#include<conio.h>
//#include<string.h>

struct Aluno // No enunciado seu nome é próprio [Aluno] e não [aluno]
{
  ...
};

struct Aluno cadaluno[20];


int main( )
{
    int opcao, i;

    do{
      ...
        
        scanf( "%d", &opcao ); // Checado

        switch( opcao ){

        case 1:
            /* (1) Existem especificações no enunciado ignoradas / inexiste-
               tentes nessa parte, porém devem ser atendidas aqui:

               1. Cadastra aluno (apenas 1, escolhendo a posição de 1 a 20).
               ------------------------------------------------------------
               Esse trecho nos leva ao entendimento de que o usuário ainda
               tem de escolher ¹folha de cadastro para preenchiento.
               E não é exatamente o que está acontecendo. Pelo contrário não
               há escolha, e todos as ¹folhas de cadastro são vista no mesmo
               instante.


               ¹ Posições no Vetor :cadaluno:
            */
            for( i = 0; i < 20; i++ ){

              ...
                scanf ( "%f", &cadaluno[i].peso ); // Checado
              ...
                scanf ( "%f", &cadaluno[i].altura ); // Checado
                fflush( stdin );
            }
            break;
        case 2:
            for( i = 0; i < 20; i++ ){

                printf( "%d: %s - %s - %.2f - %.2f - %.2f", // Checado 
                                                         i,
                                                         cadaluno[i].nome,
                                                         cadaluno[i].email,
                                                         cadaluno[i].peso,
                                                         cadaluno[i].altura,
                                                         cadaluno[i].IMC
                                                        );
            }
            break;
        ...
        }
    }while ( 1 ); // Checado

    return 0;
}

Qualquer coisa nos pergunte mais

 

Boa Sorte

~~/~~

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show fiz as correções e o programa funciona legal agora vou construir o menu de apagar alunos....

Outra duvida tenho que inserir no programa o calculo de IMC dos alunos, eu ja fiz um programa para calcular este IMC que esta abaixo, só que não sei como fazer para inserir este programa no meu programa principal e ainda por cima fazer funcionar a opção 5 do meu menu que é a listagem do IMC dos alunos cadastrados podem me ajudar

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main (){
	
	float peso, altura, IMC;
	
	printf("Digite seu peso: ");
    scanf("%f",&peso);
    printf("Digite sua altura: ");
    scanf("%f",&altura);

    IMC = peso/(pow(altura,2));

    printf("-----------------------------------\n");
    printf("Seu IMC e: %0.2f\n",IMC);

    if(IMC<18.5)
    {
        printf("Baixo peso.\n");
    }
    else
    {
        if(IMC>18.5 && IMC<25)
        {
            printf("Peso ideal.\n");
        }
        else
        {
            if(IMC>25 && IMC<30)
            {
                printf("Sobrepeso.\n");
            }
            else
            {
                if(IMC>30 && IMC<35)
                {
                    printf("Obesidade Grau 1.\n");
                }
                else
                {
                    if(IMC>35 && IMC<40)
                    {
                        printf("Obesidade Grau 2.\n");
                    }
                    else
                    {
                        if(IMC>40)
                        {
                            printf("Obesidade Grau 3.\n");
                        }
                        
                            }
                        }
                    }
                }
            }
        return 0;
}

	

 

adicionado 0 minutos depois

@AnsiC Bah valeu pelas as aulas e dicas muito obrigado mesmo.

adicionado 2 minutos depois

@ivo vieira valeu pela força Ivo

Editado por Simon Viegas
Alterar tipo de CODE para "C Languages"
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

@Alexandre Tarouco, segue algumas sugestões:

 

1#

Desative a tabulação do editor de texto, ou seja, ao pressionar tab, faça inserir espaços. No Dev-C++ fica em "Ferramentas/Opções de Editor", e deixa desabilitado o item "Usar caractere de tabulação".

 

 

 

2#

Sempre mantenha seu código indentado. Ex.:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main () {
    float peso, altura, IMC;
    printf("Digite seu peso: ");
    scanf("%f",&peso);
    printf("Digite sua altura: ");
    scanf("%f",&altura);
    IMC = peso/(pow(altura,2));
    printf("-----------------------------------\n");
    printf("Seu IMC e: %0.2f\n",IMC);
    if(IMC<18.5) {
        printf("Baixo peso.\n");
    } else {
        if(IMC>18.5 && IMC<25) {
            printf("Peso ideal.\n");
        } else {
            if(IMC>25 && IMC<30) { 
                printf("Sobrepeso.\n");
            } else {
                if(IMC>30 && IMC<35) {
                    printf("Obesidade Grau 1.\n");
                } else {
                    if(IMC>35 && IMC<40) {
                        printf("Obesidade Grau 2.\n");
                    } else {
                        if(IMC>40) {
                            printf("Obesidade Grau 3.\n");
                        }
                    }
                }
            }
        }
    }
    return 0;
}

 

 

 

3#

Quando o if ou else tem apenas um comando, não precisa de {}, ex:

Spoiler

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main () {
    float peso, altura, IMC;
    printf("Digite seu peso: ");
    scanf("%f",&peso);
    printf("Digite sua altura: ");
    scanf("%f",&altura);
    IMC = peso/(pow(altura,2));
    printf("-----------------------------------\n");
    printf("Seu IMC e: %0.2f\n",IMC);
    if(IMC<18.5)
        printf("Baixo peso.\n");
    else
        if(IMC>18.5 && IMC<25)
            printf("Peso ideal.\n");
        else
            if(IMC>25 && IMC<30) 
                printf("Sobrepeso.\n");
            else
                if(IMC>30 && IMC<35)
                    printf("Obesidade Grau 1.\n");
                else
                    if(IMC>35 && IMC<40)
                        printf("Obesidade Grau 2.\n");
                    else
                        if(IMC>40)
                            printf("Obesidade Grau 3.\n");
    
    return 0;
}

 

 

 

4#

Poderia indentar assim também:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main () {
    float peso, altura, IMC;
    
    printf("Digite seu peso: ");
    scanf("%f",&peso);
    printf("Digite sua altura: ");
    scanf("%f",&altura);
    IMC = peso/(pow(altura,2));
    printf("-----------------------------------\n");
    printf("Seu IMC e: %0.2f\n",IMC);
    if (IMC<18.5)               printf("Baixo peso.\n");
    else if(IMC>18.5 && IMC<25) printf("Peso ideal.\n");
    else if(IMC>25 && IMC<30)   printf("Sobrepeso.\n");
    else if(IMC>30 && IMC<35)   printf("Obesidade Grau 1.\n");
    else if(IMC>35 && IMC<40)   printf("Obesidade Grau 2.\n");
    else if(IMC>40)             printf("Obesidade Grau 3.\n");
    return 0;
}

 

 

 

5#

45 minutos atrás, Alexandre Tarouco disse:

Outra duvida tenho que inserir no programa o calculo de IMC dos alunos, eu ja fiz um programa para calcular este IMC que esta abaixo, só que não sei como fazer para inserir este programa no meu programa principal e ainda por cima fazer funcionar a opção 5 do meu menu que é a listagem do IMC dos alunos cadastrados podem me ajudar

 

 

Vide enunciado:

17 horas atrás, Alexandre Tarouco disse:

Então você pensou muito a respeito e decidiu fazer da seguinte forma:

* Uma estrutura chamada Aluno onde será armazenado nome, e-mail, peso e altura.
* Um vetor de 20 posições que armazenará as estruturas.
* Uma tela de menu, que terá as seguintes opções:

1. Cadastra aluno (apenas 1, escolhendo a posição de 1 a 20).
2. Listar alunos.
3. Apagar aluno (pode apagar pela posição na lista).
0. Sair.

O programa deve permanecer em execução até o usuário escolher a opção "Sair".

 

Não percebi em que momento precisaria incluir o IMC no código, mas de qualquer forma, o IMC não precisa ser armazenado. Apenas na hora que precisar dessa informação, irá pegar a altura e peso do aluno e irá calcular.

 

 

***

 

Tente implementar, qualquer coisa posta o código completo e onde está com dúvidas.

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você pensou muito a respeito e decidiu fazer da seguinte forma:

* Uma função separada para calcular o imc, ela recebe dois valores em ponto flutuante (peso e altura) e retorna um valor (o imc) em ponto flutuante.
* Uma estrutura chamada Aluno onde será armazenado nome, e-mail, peso e altura.
* Um vetor de 20 posições que armazenará as estruturas.
* Uma tela de menu, que terá as seguintes opções:

1. Cadastra aluno (apenas 1, escolhendo a posição de 1 a 20).
2. Listar alunos.
3. Apagar aluno (pode apagar pela posição na lista).
4. Listar IMC de alunos (lista todos os nomes, com o valor do IMC e a condição para o IMC de acordo com a tabela acima).
0. Sair.

O programa deve permanecer em execução até o usuário escolher a opção "Sair".

adicionado 2 minutos depois

Então minha duvida é como fazer a opção   5 do menu funcionar  printf("5 - Listar IMC do aluno\n");

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perceba a estrutura da struct:

3 minutos atrás, Alexandre Tarouco disse:

* Uma estrutura chamada Aluno onde será armazenado nome, e-mail, peso e altura.

 

De fato o IMC não fica lá (e não teria porque ficar).

 

Na hora de imprimir, vai usar o nome que está na struct; e para o IMC, e pega a altura e o peso, faz a conta e o exibe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

4. Listar IMC de alunos (lista todos os nomes, com o valor do IMC e a condição para o IMC de acordo com a tabela acima).

 

é exatamente isto que não sei fazer....como chamar e imprimir ou colocar no meu programa esta funcao e listar todos os alunos com seus respectivos imc´s e tipos de imc como no programa que eu fiz.

adicionado 18 minutos depois
	case 4:
			for (i = 0; i< MAX; i++){
				if (cadaluno[i].nome == "") continue;
				IMC == cadaluno[i.]peso/(pow(cadaluno[i].altura,2));
				    if(IMC<18.5)		        printf("Baixo peso.\n");
    				else if(IMC>18.5 && IMC<25) printf("Peso ideal.\n");
    				else if(IMC>25 && IMC<30) 	printf("Sobrepeso.\n");
    				else if(IMC>30 && IMC<35) 	printf("Obesidade Grau 1.\n");
    				else if(IMC>35 && IMC<40) 	printf("Obesidade Grau 2.\n");
   					else if(IMC>40) 			printf("Obesidade Grau 3.\n");
							
			}
			break;
		case 0:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz começa a colocar essas soluções em funções, porque se não, a main vai ficar entupida. Aquela massa de código terrível e desgostosa.

 

 

Faça uma apresentação bonitinha para essa lista, tipo assim:

+------------------------------------------------+
|    LISTA DE INDICE DE MASSA CORPORAL  - IMC    |
+----------------------------+--------+----------+--------+-------------------+
|                            |        |          |        |                   |
|  NOME                      |  PESO  |  ALTURA  |  IMC   |   CLASSIFICACAO   |
|                            |        |          |        |                   |
+----------------------------+--------+----------+--------+-------------------+
+ Fulano de Tal da Silva     | 78.500 |  1.8500  |  64.0  | Peso ideal        +
+----------------------------+--------+----------+--------+-------------------+
Editado por AnsiC
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Alexandre Tarouco disse:

if (cadaluno.nome == "") continue;

Neste caso você está comparando o endereço da memória de :nome: com o de uma string nula. Não vai funcionar do jeito que esta pensando.

 

Já assim:

if (cadaluno[i].nome[0] == ""[0]) continue;

Se nome, estiver vazio, e o vetor[cadaluno] foi inicializado, ou até mesmo se a posição atual foi excluída; deve funcionar. 

 

adicionado 2 minutos depois
4 minutos atrás, Alexandre Tarouco disse:

Não a menor ideia de como fazer uma apresentação assim .....

Pessoal aqui é fera, vamos te ajudar. Mas isso só será possível se começar a usar procedimentos (funções)

adicionado 6 minutos depois

Mesmo que não faça a apresentação do quadro acima, porém funções tem que fazer, vai por mim.

Compartilhar este post


Link para o post
Compartilhar em outros sites
\\este é o programa para calculo do imc ele funciona ok
mas agora tenho que inserir este calculo e as respostas do tipo de de peso de cada aluno no programa principal do cadastro da academia.


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main () {
    float peso, altura, IMC;
    
    printf("Digite seu peso: ");
    scanf("%f",&peso);
    printf("Digite sua altura: ");
    scanf("%f",&altura);
    IMC = peso/(pow(altura,2));
    printf("-----------------------------------\n");
    printf("Seu IMC e: %0.2f\n",IMC);
    if (IMC<18.5)               printf("Baixo peso.\n");
    else if(IMC>18.5 && IMC<25) printf("Peso ideal.\n");
    else if(IMC>25 && IMC<30)   printf("Sobrepeso.\n");
    else if(IMC>30 && IMC<35)   printf("Obesidade Grau 1.\n");
    else if(IMC>35 && IMC<40)   printf("Obesidade Grau 2.\n");
    else if(IMC>40)             printf("Obesidade Grau 3.\n");
    return 0;
}

 

Editado por Simon Viegas
Modificar tag CODE para codificação C, C++...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A base poderia ser por ai mesmo... para calcular o IMC use algo como:

IMC = cadaluno[i].peso/(pow(cadaluno[i].altura,2));

 

 

Para obter a categoria use uma outra variável, por exemplo, categoria_imc. Ai, nos if, em vez de imprimir o valor, você atribui a resposta a variável. Quando precisar imprimir, use as variáveis IMC para informar o IMC, e a variável categoria_imc para informar a categoria.

 

adicionado 13 minutos depois

Lembrando que IMC não faz parte do cadastro... precisa remover da struct.

Poderia ficar com algo assim:

typedef struct _aluno {
    char  nome[30];
    char  email[30];
    float peso;
    float altura;
    //float IMC;  IMC NÃO É UM ATRIBUTO, APENAS UM INFORMAÇÃO QUE É OBTIDA POR CÁLCULO
} Aluno;

Aluno cadAluno[20];

 

Só para reforçar... o enunciado já explicita o que a struct vai ter:

Em 16/06/2018 às 23:55, Alexandre Tarouco disse:

* Uma estrutura chamada Aluno onde será armazenado nome, e-mail, peso e altura.

 

Ou seja, o 4 atributos, e o nome da estrutura deve ser Aluno. O IMC deve ser calculado na hora, como demonstrado mais a cima desta postagem.

 

 

PS: Ou poderia ser assim:

struct Aluno {
    char  nome[30];
    char  email[30];
    float peso;
    float altura;
};

struct Aluno cadAluno[20];

Eu prefiro da primeira forma...

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, Alexandre Tarouco disse:

\\este é o programa para calculo do imc ele funciona ok mas agora tenho que inserir este calculo e as respostas do tipo de de peso de cada aluno no programa principal do cadastro da academia.

Uma apresentação mediana é assim, eu sei porque meus professores me dizem o tempo todo:

#include <math.h>
#include <stdio.h>
#include <string.h>


struct Aluno
{
    char  nome[30];
    char  email[30];
    float peso;
    float altura;
    float IMC;

} cadaluno[20];

void func_imc( void )
{
    char   p;
    float  IMC;
    float  peso;
    char * nome;
    float  altura;
    int    count, i;


    printf( "+--------------------------------------+\n" );
    printf( "|4- LISTA DE INDICE DE MASSA CORPORAL  |\n" );
    printf( "+--------------------------------------+\n" );

    for( i = count = 0; i < 20; i++ ){

        if( cadaluno[i].nome[0] == '\0' )
            continue;
        else
            count++;

        nome   = cadaluno[i].nome;
        peso   = cadaluno[i].peso;
        altura = cadaluno[i].altura;

        IMC = peso/(pow(altura,2));

        printf( "+......................................+\n" );
        printf( "| %2d:\t%-30.38s |\n|%38s|\n", i, nome,"" );
        printf( "| IMC:\t%-30.2f |\n", IMC );
        printf( "| Classificacao: ");

        if( IMC < 18.5 )                 p = printf( "Baixo peso." );
        else if( IMC > 18.5 && IMC < 25 )p = printf( "Peso ideal." );
        else if( IMC > 25   && IMC < 30 )p = printf( "Sobrepeso." );
        else if( IMC > 30   && IMC < 35 )p = printf( "Obesidade Grau 1." );
        else if( IMC > 35   && IMC < 40 )p = printf( "Obesidade Grau 2." );
        else if( IMC > 40 )              p = printf( "Obesidade Grau 3." );
        printf( "%*s\n", 23-p, "|" );
    }
        printf( "+--------------------------------------+\n" );
        printf( "+-> Cadastros: %d \n\n", count );
    return;
}

int main( ){
    int opcao, i;

    /* Cadastro de Teste */
    strcpy( cadaluno[19].nome,
    "Doidinho de Jesus e Maria" );
    cadaluno[19].altura = 1.85;
    cadaluno[19].peso   = 100.6;
    cadaluno[19].IMC    = .0f;

    strcpy( cadaluno[18].nome,
    "Fulano de Jesus e Maria" );
    cadaluno[18].altura = 1.85;
    cadaluno[18].peso   = 80.6;
    cadaluno[18].IMC    = .0f;
    /* Cadastro de Teste */

    do {
        printf( "+-----------------------------+\n" );
        printf( "|-----CADASTRO DE ALUNOS------|\n" );
        printf( "+-----------------------------+\n\n" );

        printf( "1- Cadastra aluno\n" );
        printf( "2- Listar alunos\n" );
        printf( "3- Apagar aluno\n" );
        printf( "4- Listar IMC de alunos\n" );
        printf( "0- Sair\n" );
        printf( "\n<<< " );
        scanf( "%d", &opcao );

        switch( opcao ){

            case 4: func_imc( );
            /* Escrever Ìndice de Massa Corporal  */
        }
    }while(opcao != 0);

    return 0;
}

IMC_LISTA_PRINT.png

 

 

Boa Sorte.

~~ / ~~

 

Editado por AnsiC
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

é a unicesumar ead em engenharia de software eu super recomendo apenas de ser a distancia você aprende se realmente estudar;;;; e o preço é razoável 

adicionado 1 minuto depois
	/* opção apagar do menu :*/
	case 3 :
			printf("Digite a posicao do registro que deseja apagar\n");
        	scanf("%d",& i);
            if (i>=0 || i <=19)
            {
                strcpy(cadaluno[i].nome = " ");
                strcpy(cadaluno[i].email = " ");
                strcpy(cadaluno[i].peso = " ");
                strcp(cadaluno[i].altura = " ");
                printf("\n\n Registro excluido !\n\n");
            }
            else
            {    
				printf("Posicao invalida");

Agora travou o programa neste ponto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Alexandre Tarouco Olá. Olhando rapidamente nesse último código a questão é q a função strcpy está sendo usada de forma errada. Dá uma olhada  no ajuste:

strcpy(cadaluno[i].nome, ""); // nessa função o primeiro e o segundo parâmetros devem ser strings. Ou seja, a função recebe 2 parâmetros
strcpy(cadaluno[i].email, "");
cadaluno[i].peso == 0;
cadaluno[i].altura == 0;

Vê se resolve.

Só um ponto: Daria para passar bem certo o nome dessa faculdade q você cursa? É faculdade a  distância (online)?

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

×