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:  
urii

C Cadastro e calculo de IMC em C

Recommended Posts

Oi, gente! Tudo bom? Então, eu tô desde que acordei tentando fazer esse trabalho mas não estou conseguindo. Já tentei de várias formas e nunca da certo, eu queria ajuda para tentar fazer o seguinte trabalho: 

O programa deve cadastrar alunos.

 

 

* 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".

* Lembre-se de que números decimais são escritos com ponto (.) ao invés de vírgula (,).

Um ótimo trabalho a todos!


- Para auxilia-lo na elaboração deste algoritmo, utilize o programa DevC++ (outros programas como CodeBlocks, também podem ser utilizados).
- A atividade deve ser realizada obrigatoriamente utilizando a Linguagem C. Linguagens como PHP, JAVA, entre outras não serão aceitas. 
 

 

CÁLCULO PARA O IMC:   IMC= MASSA / (ALTURA²)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, use a pesquisa, tem várias questões semelhantes aqui no fórum. Como pode ver em outros tópicos não podemos resolver a questão, mas esclarecer suas dúvidas. Assim apresente o que já tentou fazer.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, sim. Mas é isso mesmo que quero, uns links para tentar ajudar. É que já olhei em vários sites, vídeo-aulas de vários outros exercícios e tento adaptar para esse trabalho, só que sempre sai tudo errado :(

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@urii, por favor, poste o que conseguiu fazer e onde está com dúvidas.

 

 

Uma sugestão é tenta fazer ao poucos... Por exemplo, tente implementar isso:

8 horas atrás, urii disse:

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

 

E posta aqui.

 

 

No aguardo.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, urii disse:

Ah, sim. Mas é isso mesmo que quero, uns links para tentar ajudar. É que já olhei em vários sites, vídeo-aulas de vários outros exercícios e tento adaptar para esse trabalho, só que sempre sai tudo errado :(

É assim mesmo, tem uma curva de aprendizado. Mas tem que tentar fazer para compreender os conceitos envolvidos. E ajudamos a esclarecer as dúvidas que forem surgindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

Então gente, meu código é esse:
 

 

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

void inserir (void);
void mostrar(void);
void excluir(void);
void mostrarimc(void);
int i;
struct registro{
    
    char matricula;
    char nome;
    char email;
    float peso, altura;
    
    
};
    struct registro vetor[20];
    
    
    int num;
    
     

int main(void) {
    float imc;
    
    
    for (;;)
    {
        printf("\n Bem-Vindo! Escolha uma Opcao Abaixo:");
        printf("1- Cadastrar Aluno\n");
        printf("2- Listar Alunos");
        printf("3- Excluir Alunos");
        printf("4- Listar IMC");
        printf("0- Sair");
        
        scanf("%d" &num);
        switch(num)
        {
            case 1: inserir ();
            break;
            case 2: mostrar ();
            break;
            case 3: excluir ();
            break;
            case 4: mostrarimc();
            break;
            case 0: exit(0);
            default: puts ("Tente Novamente");
            
            
            
            
        }
        
        
        
        
        
    }
    getchar ();
    
    void inserir (void)
    {
        for (i=0; i<10; i++);{
        
        fflush (stdin);
        printf("\n Qual a matricula do Aluno? \n ");
        gets(vetor.matricula);
        fflush (stdin);
        Printf("\n Nome do aluno: \n");
        gets(vetor.nome);
        fflush (stdin);
        printf("\n E-mail do aluno: \n");
        gets(vetor.email);
        fflush (stdin);
        printf("\n Peso do aluno: \n");
        gets(vetor.peso);
        fflush (stdin);
        printf("\n Altura do Aluno \n");
        gets(vetor.altura);
        fflush(stdin);
        
        
        
        
        }
        
    getche();    
        
    }
    void mostrar(void)
    
    { 
    int i;
    
        for (i=0,i<10; i++){
            
            printf("\n Matricula do Aluno: %s", vetor.matricula);
            printf("\n Nome do Aluno: %s", vetor.nome);
            printf("\n E-mail do Aluno: %s", vetor.email);
            printf("\n IMC do Aluno: %f", &imc);
            
            
            
        }
    
    
    
    
    }
    
    void excluir (void)
    {
        char matricula;
        
        printf("Qual a Matricula do Aluno que voce deseja remover? \n");
        gets(matricula);
            for(i=0; i<10; i++){
                
                if ((strcmp(matricula,vetor.matricula))==0)
                for ( ;i<9; i++){
                    
                    strcpy(vetor.matricula, vetor[i+1].matricula);
                    strpy(vetor.nome, vetor[i+1].nome);
                    strpy(vetor.email, vetor[i+1].email );
                    strpy(vetor.peso, vetor[i+1].peso);
                    strpy(vetor.altura, vetor[i+1].altura);
                    
                    
                }
                
            }
        getche();
        
    }
    
    
    return 0;
} 

 

Ta dando erro ao compilar e ainda não sei onde por a conversão do peso e massa em IMC 

Editado por Simon Viegas
Inserir tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

@urii Para o fórum [ i ] sem espaços é a tag para deixar o texto em itálico, por isso todos os [ i ] do seu código sumiram (e o texto está em itálico a partir do primeiro lugar onde deveria ter um [ i ]).

 

Para evitar que esse tipo de coisa aconteça use o botão < > (Code) para postar códigos no fórum (vide 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>

void inserir (void);
void mostrar(void);
void excluir(void);
void mostrarimc(void);
int i;
struct registro{
	
	char matricula;
	char nome;
	char email;
	float peso, altura;
	
	
};
	struct registro vetor[20];
	
	
	int num;
	
	 

int main(void) {
	float imc;
	
	
	for (;;)
	{
		printf("\n Bem-Vindo! Escolha uma Opcao Abaixo:");
		printf("1- Cadastrar Aluno\n");
		printf("2- Listar Alunos");
		printf("3- Excluir Alunos");
		printf("4- Listar IMC");
		printf("0- Sair");
		
		scanf("%d" &num);
		switch(num)
		{
			case 1: inserir ();
			break;
			case 2: mostrar ();
			break;
			case 3: excluir ();
			break;
			case 4: mostrarimc();
			break;
			case 0: exit(0);
			default: puts ("Tente Novamente");
			
			
			
			
		}
		
		
		
		
		
	}
	getchar ();
	
	void inserir (void)
	{
		for (i=0; i<10; i++);{
		
		fflush (stdin);
		printf("\n Qual a matricula do Aluno? \n ");
		gets(vetor[i].matricula);
		fflush (stdin);
		Printf("\n Nome do aluno: \n");
		gets(vetor[i].nome);
		fflush (stdin);
		printf("\n E-mail do aluno: \n");
		gets(vetor[i].email);
		fflush (stdin);
		printf("\n Peso do aluno: \n");
		gets(vetor[i].peso);
		fflush (stdin);
		printf("\n Altura do Aluno \n");
		gets(vetor[i].altura);
		fflush(stdin);
		
		
		
		
		}
		
	getche();	
		
	}
	void mostrar(void)
	
	{ 
	int i;
	
		for (i=0,i<10; i++){
			
			printf("\n Matricula do Aluno: %s", vetor[i].matricula);
			printf("\n Nome do Aluno: %s", vetor[i].nome);
			printf("\n E-mail do Aluno: %s", vetor[i].email);
			printf("\n IMC do Aluno: %f", &imc);
			
			
			
		}
	
	
	
	
	}
	
	void excluir (void)
	{
		char matricula;
		
		printf("Qual a Matricula do Aluno que voce deseja remover? \n");
		gets(matricula);
			for(i=0; i<10; i++){
				
				if ((strcmp(matricula,vetor[i].matricula))==0)
				for ( ;i<9; i++){
					
					strcpy(vetor[i].matricula, vetor[i+1].matricula);
					strpy(vetor[i].nome, vetor[i+1].nome);
					strpy(vetor[i].email, vetor[i+1].email );
					strpy(vetor[i].peso, vetor[i+1].peso);
					strpy(vetor[i].altura, vetor[i+1].altura);
					
					
				}
				
			}
		getche();
		
	}
	
	
	return 0;
}

Opa, foi mal. Sou novo no fórum 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, Galera. Tudo bom? Então, eu tô com um trabalho pra fazer, até postei aqui pedindo ajuda mas acabei esquecendo de por o código. Então assim, tenho um trabalho e tenho que fazer o que está nas duas imagens. Por enquanto o meu código está assim: 

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

void inserir (void);
void mostrar(void);
void excluir(void);
void mostrarimc(void);
int i;
struct registro{
	
	char matricula;
	char nome;
	char email;
	float peso, altura;
	
	
};
	struct registro vetor[20];
	
	
	int num;
	
	 

int main(void) {
	float imc;
	
	
	for (;;)
	{
		printf("\n Bem-Vindo! Escolha uma Opcao Abaixo:");
		printf("1- Cadastrar Aluno\n");
		printf("2- Listar Alunos");
		printf("3- Excluir Alunos");
		printf("4- Listar IMC");
		printf("0- Sair");
		
		scanf("%d" &num);
		switch(num)
		{
			case 1: inserir ();
			break;
			case 2: mostrar ();
			break;
			case 3: excluir ();
			break;
			case 4: mostrarimc();
			break;
			case 0: exit(0);
			default: puts ("Tente Novamente");
			
			
			
			
		}
		
		
		
		
		
	}
	getchar ();
	
	void inserir (void)
	{
		for (i=0; i<10; i++);{
		
		fflush (stdin);
		printf("\n Qual a matricula do Aluno? \n ");
		gets(vetor[i].matricula);
		fflush (stdin);
		Printf("\n Nome do aluno: \n");
		gets(vetor[i].nome);
		fflush (stdin);
		printf("\n E-mail do aluno: \n");
		gets(vetor[i].email);
		fflush (stdin);
		printf("\n Peso do aluno: \n");
		gets(vetor[i].peso);
		fflush (stdin);
		printf("\n Altura do Aluno \n");
		gets(vetor[i].altura);
		fflush(stdin);
		
		
		
		
		}
		
	getche();	
		
	}
	void mostrar(void)
	
	{ 
	int i;
	
		for (i=0,i<10; i++){
			
			printf("\n Matricula do Aluno: %s", vetor[i].matricula);
			printf("\n Nome do Aluno: %s", vetor[i].nome);
			printf("\n E-mail do Aluno: %s", vetor[i].email);
			printf("\n IMC do Aluno: %f", &imc);
			
			
			
		}
	
	
	
	
	}
	
	void excluir (void)
	{
		char matricula;
		
		printf("Qual a Matricula do Aluno que voce deseja remover? \n");
		gets(matricula);
			for(i=0; i<10; i++){
				
				if ((strcmp(matricula,vetor[i].matricula))==0)
				for ( ;i<9; i++){
					
					strcpy(vetor[i].matricula, vetor[i+1].matricula);
					strpy(vetor[i].nome, vetor[i+1].nome);
					strpy(vetor[i].email, vetor[i+1].email );
					strpy(vetor[i].peso, vetor[i+1].peso);
					strpy(vetor[i].altura, vetor[i+1].altura);
					
					
				}
				
			}
		getche();
		
	}
	
	
	return 0;
}

 Só que não ta dando certo para compilar e eu ainda tenho que descobrir como por o algoritmo de conversão no meio disso aí. Valeu, galero. 

1.PNG

2.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites
38 minutos atrás, urii disse:

scanf("%d" &num);

Aqui faltou uma vírgula

 

38 minutos atrás, urii disse:

for (i=0; i<10; i++);{

Aqui não precisa desse ponto e vírgula

 
38 minutos atrás, urii disse:

for (i=0,i<10; i++){

Aqui é um ponto e vírgula

 

Além disso, não sei como te ajudar, não sou muito familiar com manipulação de strings em C

adicionado 15 minutos depois
50 minutos atrás, urii disse:

gets

Recomendaria usar 

scanf("%s",&NomeDaString);

e se não me engano, não deveria existir a variável matrícula no problema, a matrícula seria a ordem do aluno no vetor

Editado por Ploita
  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, @Ploita... Ainda não hahahaha. Tive que estudar para outra prova, mas tenho até o dia 26 para entregar esse trabalho, até lá eu aprendo hahahaha. Mas muito obrigado por tentar ajudar!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 12/06/2018 às 21:43, urii disse:

Então, @Ploita... Ainda não hahahaha. Tive que estudar para outra prova, mas tenho até o dia 26 para entregar esse trabalho, até lá eu aprendo hahahaha. Mas muito obrigado por tentar ajudar!

olá estou tento o mesmo trabalho que o seu e também estou com  dificuldades caso consiga me  visa por favor!

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

×