Ir para conteúdo

GustavoSoaresLima

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre GustavoSoaresLima

  1. GustavoSoaresLima

    Programa em C para cadastrar aluno

    Boa tarde, estou tentando fazer um programa para cadastrar alunos para um trabalho da faculdade Isso é o que pede no enunciado: * 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". até agora consegui fazer quase tudo, mas quando eu peço pra listar o valor dos floats aparecem como 0.00, mesmo eu tendo colocado um valor diferente para eles. Esse é meu código: #include<stdio.h> #include<stdlib.h> #include <locale.h> struct Aluno{ char nome[20]; char email[20]; float peso; float altura; float IMC; }; struct Aluno cad_aluno[20]; float calculaimc(float p, float a){ float resultado = p / (a*a); return resultado; } int main (){ int opcao, i, l; setlocale(LC_ALL, "Portuguese"); for (i = 1; i <=20;){ printf("\n\nCadastro dos Alunos: \n"); printf("Digite o numero de uma das opções: \n"); printf("1- Cadastrar aluno \n"); printf("2- Listar alunos \n"); printf("3- Apagar alunos \n"); printf("4- Listar IMC de alunos \n"); printf("0- Sair \n"); scanf("%d", &opcao); switch(opcao) { case 1: fflush(stdin); printf ("\n Nome do aluno:"); scanf ("%s", &cad_aluno[i].nome); fflush(stdin); printf ("\n Email do aluno:"); scanf ("%s", &cad_aluno[i].email); fflush(stdin); printf ("\n Peso do aluno: "); scanf ("%f", &cad_aluno[i].peso); fflush(stdin); printf ("\n Altura do aluno: "); scanf ("%f", &cad_aluno[i].altura); fflush(stdin); cad_aluno[i].IMC = calculaimc(cad_aluno[i].peso, cad_aluno[i].altura); fflush(stdin); i++; break; case 2: for (l = 1; l <=20; l++) { if(l < i){ printf("\n\nNome: %s", &cad_aluno[l].nome); printf("\nEmail: %s", &cad_aluno[l].email); printf("\nPeso: %1.2f", &cad_aluno[l].peso); printf("\nAltura: %1.2f", &cad_aluno[l].altura); printf("\nIMC: %1.2f", &cad_aluno[l].IMC); } else{ l = 20; } } break; case 3 : break; case 4 : for (l = 0; l <20; l++) { if(l < i){ printf("IMC do aluno %d: %1.2f", l, &cad_aluno[l].IMC); } else{ l = 20; } } break; case 0 : exit(0); default: printf ("Opção invalida\n"); break; } } return 0; } Desde já agradeço.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.