To do a college job where I have a separate function that gets two values (WEIGHT and HEIGHT) and returns the BMI.
I also have a struct called ALUNO where weight and height are stored and a vector of 20 positions that will store the structures.
The program has a little box where in option 1 the user will register the weight and height, and in option 4 I have to show the Name, BMI and condition according to a table that was passed to me. (The condition I know how to do)
I made the program almost whole but arriving at the part of calculating the IMC I can not pass the struct inside the function. I know it has to pass through value or reference but I have already tried and I can not.
Can anyone help me? Thank you in advance!
//DECLARANDO ESTRUTURA
struct aluno {
char nome[100];
char email[100];
float altura;
float peso;
};
//VETOR
struct aluno info[21];
//FUNÇÃO SEPARADA DE IMC
float calculaImc(float altura, peso) {
float resultado;
resultado = peso / (altura*altura);
return resultado;
}
//FUNÇÃO PRICIPAL
int main() {
setlocale(LC_ALL,"portuguese");
//DECLARANDO OUTRAS VARIAVEIS NECESSARIAS
int i, op, posicao, excluir;
do{
system("cls");
printf("\nCADASTRANDO ALUNOS NA ACADEMIA\n");
printf("\n\t MENU \n");
printf("\n1. Cadastrar aluno.\n");
printf("2. Listar alunos.\n");
printf("3. Apagar aluno.\n");
printf("4. Listar IMC de alunos.\n");
printf("0. Sair.\n");
printf("\nEscolha uma das opções do menu: ");
scanf("%i", &op);
printf("\n");
switch(op) {
case(1):
printf("Posições que já possuem cadastro: ");
for(i=0; i<21; i++) {
if (info[i].nome[0] == '//DECLARANDO ESTRUTURA
struct aluno {
char nome[100];
char email[100];
float altura;
float peso;
};
//VETOR
struct aluno info[21];
//FUNÇÃO SEPARADA DE IMC
float calculaImc(float altura, peso) {
float resultado;
resultado = peso / (altura*altura);
return resultado;
}
//FUNÇÃO PRICIPAL
int main() {
setlocale(LC_ALL,"portuguese");
//DECLARANDO OUTRAS VARIAVEIS NECESSARIAS
int i, op, posicao, excluir;
do{
system("cls");
printf("\nCADASTRANDO ALUNOS NA ACADEMIA\n");
printf("\n\t MENU \n");
printf("\n1. Cadastrar aluno.\n");
printf("2. Listar alunos.\n");
printf("3. Apagar aluno.\n");
printf("4. Listar IMC de alunos.\n");
printf("0. Sair.\n");
printf("\nEscolha uma das opções do menu: ");
scanf("%i", &op);
printf("\n");
switch(op) {
case(1):
printf("Posições que já possuem cadastro: ");
for(i=0; i<21; i++) {
if (info[i].nome[0] == '%pre%'){
continue;
}
printf("%d " , i);
}
printf("\nEscolha de 1 a 20: ");
scanf("%d", &posicao);
i=posicao;
if(posicao > 20){
printf("\nVocê digitou um valor invalido, tente novamente!\n");
}else{
printf("\n Posição escolhida: %d. \n", i);
printf("\n");
printf("Nome : ");
fflush(stdin);
gets(info[i].nome);
printf("Email : ");
fflush(stdin);
gets(info[i].email);
printf("Altura (m): ");
scanf("%f", &info[i].altura);
fflush(stdin);
printf("Peso (kg): ");
scanf("%f", &info[i].peso);
fflush(stdin);
if(info[i].nome[0] == '%pre%') {
printf("\nErro. Você não colocou um Nome.\n");
}else{
printf("\nAluno cadastrado com sucesso!\n");
}
}
break;
case(2):
printf("Alunos cadastrados.\n");
for(i=0; i<21 ; i++){
if (info[i].nome[0] == '%pre%'){
continue;
}
printf("\nAluno %d \n", i);
printf("Nome: %s \n" , info[i].nome);
printf("Email: %s \n" , info[i].email);
printf("Altura: %.2f m \n", info[i].altura);
printf("Peso: %.2f kg \n", info[i].peso);
}
break;
case(3):
printf("Apagar aluno: ");
scanf("%d", &excluir);
if(info[excluir].nome[0] != '%pre%') {
printf("\nEssa posição corresponde ao seguinte aluno: %s.\n", info[excluir].nome);
break;
case(4):
for(i=0; i<21; i++) {
if (info[i].nome[0] == '%pre%'){
continue;
}
printf("\nAluno %d \n", i);
printf("Nome: %s\n", info[i].nome);
}
break;
}
}while(op!=0);
return 0;
}
'){
continue;
}
printf("%d " , i);
}
printf("\nEscolha de 1 a 20: ");
scanf("%d", &posicao);
i=posicao;
if(posicao > 20){
printf("\nVocê digitou um valor invalido, tente novamente!\n");
}else{
printf("\n Posição escolhida: %d. \n", i);
printf("\n");
printf("Nome : ");
fflush(stdin);
gets(info[i].nome);
printf("Email : ");
fflush(stdin);
gets(info[i].email);
printf("Altura (m): ");
scanf("%f", &info[i].altura);
fflush(stdin);
printf("Peso (kg): ");
scanf("%f", &info[i].peso);
fflush(stdin);
if(info[i].nome[0] == '%pre%') {
printf("\nErro. Você não colocou um Nome.\n");
}else{
printf("\nAluno cadastrado com sucesso!\n");
}
}
break;
case(2):
printf("Alunos cadastrados.\n");
for(i=0; i<21 ; i++){
if (info[i].nome[0] == '%pre%'){
continue;
}
printf("\nAluno %d \n", i);
printf("Nome: %s \n" , info[i].nome);
printf("Email: %s \n" , info[i].email);
printf("Altura: %.2f m \n", info[i].altura);
printf("Peso: %.2f kg \n", info[i].peso);
}
break;
case(3):
printf("Apagar aluno: ");
scanf("%d", &excluir);
if(info[excluir].nome[0] != '%pre%') {
printf("\nEssa posição corresponde ao seguinte aluno: %s.\n", info[excluir].nome);
break;
case(4):
for(i=0; i<21; i++) {
if (info[i].nome[0] == '%pre%'){
continue;
}
printf("\nAluno %d \n", i);
printf("Nome: %s\n", info[i].nome);
}
break;
}
}while(op!=0);
return 0;
}