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

C Programa em C para cadastrar aluno

Recommended Posts

Boa noite/tarde/dia, eu preciso fazer um programa para calcular IMC e cadastrar alunos, mas não estou conseguindo, não entendo nada de C.

 

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

 

Isso é o que eu fiz até agora, quando eu compilo não da erro nenhum, o programa roda, mas quando eu escolho uma das opções me retorna o erro "Segmentation fault".

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

struct Aluno
{
          char nome[30];
          char email[30];
          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;
	setlocale(LC_ALL, "Portuguese");

	do {
        printf("Cadastro 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:
			for (i = 0; i <20; i++){
				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);

			}
			break;
		case 2:
			for (i = 0; i <20; i++) {
				printf("d: %s | %s | %.2f | %.2f | %.2f",
				i,
                cad_aluno[i].nome,
                cad_aluno[i].email,
                cad_aluno[i].peso,
				cad_aluno[i].altura,
				cad_aluno[i].IMC
				);
			}
			break;
		case 3 :
			break;
		case 4 :
            for (i = 0; i <20; i++) {
				printf("%.2f",
				cad_aluno[i].IMC
				);
            }
            break;
		case 0 : exit(0);
		default:
			printf ("Opção invalida\n");
			break;
	}

} while (1);

	return 0;
}

 

adicionado 6 minutos depois

Consertei o:

scanf("%d", &opcao);

mas quando iria executar o:

cad_aluno[i].IMC = calculaimc(cad_aluno[i].peso, cad_aluno[i].altura);

O erro volta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeira coisa, não é pra o programa ficar rodando 20 vezes, o switch só roda uma vez, quando terminar de cadastrar deve voltar pro menu.

Segundo para que o programa fique mais organizado, estruture ele em funções: uma função para o menu, uma para o switch, uma pra listar os alunos; uma para apagar um aluno e uma para calcular o imc.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Sobre:

7 horas atrás, GustavoSoaresLima disse:

mas quando iria executar o:


cad_aluno[i].IMC = calculaimc(cad_aluno[i].peso, cad_aluno[i].altura);

 

Então, seria necessário verificar de fato onde está ocorrendo o erro. O que já dá para verificar é que é após ler a altura! Mas não necessariamente é no calculoimc(). Fiz assim para descobrir:

                    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);
                    printf ("\n xxx");

Deu erro na mesma linha... (não chegou no "xxx"). Depois assim:

                    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);
                    printf ("\n xxx");
                }

Deu erro na mesma linha, ou seja, o erro não está no calculaimc().

 

 

Pronto! O erro está no scanf() da altura. Analisando verás que não colocou o &.

 

obs.: claro que se já analisasse o scanf() iria achar, tentei demonstrar da forma que eu fiz.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, Luís Roberto C. da Silva disse:

Primeira coisa, não é pra o programa ficar rodando 20 vezes, o switch só roda uma vez, quando terminar de cadastrar deve voltar pro menu.

Segundo para que o programa fique mais organizado, estruture ele em funções: uma função para o menu, uma para o switch, uma pra listar os alunos; uma para apagar um aluno e uma para calcular o imc.

 

Arrumei isso de rodar 20 vezes, sobre deixar o programa mais organizado, como esse é um trabalho que eu tenho prazo para entrega não quero tentar fazer muito, com medo de não conseguir fazer nada e não entregar, mas obrigado pelas observações.

adicionado 5 minutos depois
4 horas atrás, Simon Viegas disse:

Olá.

 

Sobre:

 

Então, seria necessário verificar de fato onde está ocorrendo o erro. O que já dá para verificar é que é após ler a altura! Mas não necessariamente é no calculoimc(). Fiz assim para descobrir:


                    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);
                    printf ("\n xxx");

Deu erro na mesma linha... (não chegou no "xxx"). Depois assim:


                    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);
                    printf ("\n xxx");
                }

Deu erro na mesma linha, ou seja, o erro não está no calculaimc().

 

 

Pronto! O erro está no scanf() da altura. Analisando verás que não colocou o &.

 

obs.: claro que se já analisasse o scanf() iria achar, tentei demonstrar da forma que eu fiz.

Olá.

Mudei o código, e agora ele cadastra, mostra a lista de alunos e a lista de IMC dos alunos, mas ele não esta mostrando o float direito, eu coloco valores neles, mas quando peço pra mostrar só aparece "0.00".

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

 

O sair também funciona, e eu também não sei como vou fazer para apagar os alunos.

Obrigado desde já.

Editado por GustavoSoaresLima

Compartilhar este post


Link para o post
Compartilhar em outros sites
34 minutos atrás, GustavoSoaresLima disse:

Olá.

Mudei o código, e agora ele cadastra, mostra a lista de alunos e a lista de IMC dos alunos, mas ele não esta mostrando o float direito, eu coloco valores neles, mas quando peço pra mostrar só aparece "0.00".

 

Acho que na hora de imprimir não usa o &. Pelo menos aqui funcionou:

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

 

Qualquer coisa dá uma olhada em como imprimir esses tipos numéricos.

 

adicionado 22 minutos depois

 

Sobre a indentação, tentei dar uma reorganizada no código original-:

#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 () {
    setlocale(LC_ALL, "Portuguese");
    int opcao, i, l;
    
    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;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Citação:

Spoiler
35 minutos atrás, Simon Viegas disse:

 

Acho que na hora de imprimir não usa o &. Pelo menos aqui funcionou:



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

 

Qualquer coisa dá uma olhada em como imprimir esses tipos numéricos.

 

adicionado 22 minutos depois

 

Sobre a indentação, tentei dar uma reorganizada no código original-:



#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 () {
    setlocale(LC_ALL, "Portuguese");
    int opcao, i, l;
    
    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;
}

 

 

Nossa muito obrigado, tudo funcionou perfeitamente, a unica coisa que ainda não sei como fazer é o apagar alunos, de resto ta certinho, meu código esta assim agora:

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

struct Aluno{
          char nome[20];
          char email[20];
          char grau[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);
                    if (cad_aluno[i].IMC < 18.5){ //esse desvio define a condicao do aluno
                        strcpy(cad_aluno[i].grau, "Baixo peso");
                    }

                    else if (cad_aluno[i].IMC >=18.5 &&  cad_aluno[i].IMC <25){
                        strcpy(cad_aluno[i].grau, "Peso ideal");
                    }

                    else if (cad_aluno[i].IMC >=25 &&  cad_aluno[i].IMC<30){
                        strcpy(cad_aluno[i].grau, "Sobrepeso");
                    }

                    else if (cad_aluno[i].IMC >=30 &&  cad_aluno[i].IMC<35){
                        strcpy(cad_aluno[i].grau, "Obesidade Grau 1");
                    }

                    else if (cad_aluno[i].IMC >=35 &&  cad_aluno[i].IMC<=40){
                        strcpy(cad_aluno[i].grau, "Obesidade Grau 2");
                    }

                    else if (cad_aluno[i].IMC > 40){
                        strcpy(cad_aluno[i].grau, "Obesidade Grau 3");
                    }
                    i++; //incrementa o laco para contar somente os alunos cadastrados
                break;
            case 2:
                for (l = 1; l <=20; l++) { //contador diferente para nao atrapalhar na contagem cadastros
                    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 = 1; l <=20; l++) {
                    if(l < i){
                        printf("\nIMC do aluno %s:", cad_aluno[l].nome);
                        printf(" %1.2f ", cad_aluno[l].IMC);
                        printf(" Condição: %s", cad_aluno[l].grau);
                    }
                    else{
                        l = 20;
                    }
                }
                break;
            case 0 :
                exit(0); //encerra o programa
            default:
                printf ("Opção invalida(Somente numeros de 0 a 4)\n");
                break;
        }
	}
	return 0;
}

 

Editado por Simon Viegas
Inserir tag SPOILER na citação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os dados do IMC não precisam ser armazenados... e creio eu que nem deve. Veja:

 

Sobre:

22 minutos atrás, GustavoSoaresLima disse:

struct Aluno{
          char nome[20];
          char email[20];
          char grau[20];
          float peso;
		  float altura;
		  float IMC;
};

 

Mas olha o que diz o enunciado:

13 horas atrás, GustavoSoaresLima disse:

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


Ou seja, a struct só tem 4 itens. O IMC pode ser (deveria ser) calculado na hora. Essa informação não precisa ser armazenada, pois seria redundante... E o grau nada mais é que uma tradução, ou seja, quando precisar do IMC, vai calcular usando a fórmula, assim como sugerido pelo enunciado:

13 horas atrás, GustavoSoaresLima disse:

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

 

Tendo o IMC, "traduz" o seu grau... poderia, por exemplo, criar outra função que recebe um float e retorna uma "string" (char[]).

 

Entende? O IMC e o grau é uma "informação" que pode ser obtida através de cálculos (fórmula IMC) e verificações (seleção de acordo com o valor). Seria análogo a notas de alunos... é necessário apenas obter as notas, a média é calculada através destas... (não é necessário armazenar as notas e a média).

 

 

 

adicionado 5 minutos depois

Em relação ao apagar... o enunciado fala:

13 horas atrás, GustavoSoaresLima disse:

3. Apagar aluno (pode apagar pela posição na lista).

 

Ou seja, não diz muito coisa. É necessário verificar o que significa "apagar". Existem várias formas, por exemplo:

- substituir todos os dados por valores nulos, como "" ou 0;

- deslocar todos os cadastros posteriores uma posição para trás;

- apenas marcar a posição como "apagada", algo como colocar um "#" no início do nome, ai antes de utilizar a posição, verificaria se tem ou não um #...

etc

 

RESUMINDO:

Sugiro que primeiro verifique essa questão da struct, depois, para apagar, inicialmente trabalhe como apenas "apagando os dados", ou seja, sobrescrevendo com valores "nulos". Aí, posteriormente vai tentando reformular como deveria ser esse "apagar".

adicionado 11 minutos depois

PS:

Para tentar exemplificar, na hora de imprimir o IMC, faria algo como:

printf("\nIMC: %1.2f", calculaimc(cad_aluno[l].peso, cad_aluno[l].altura));

 

Na hora de imprimir o grau:

printf("\nGrau: %s", grauIMC(calculaimc(cad_aluno[l].peso, cad_aluno[l].altura)));

Entende?

A depender, poderia usar uma variável auxiliar para armazenar o IMC temporariamente, já está sendo utilizada 2 vezes.

Editado por Simon Viegas

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

×