Estou tentando fazer o código abaixo funcionar mas tá complicado. A questão é que fiz alguns testes e os cálculos estão batendo, mas quando o programa passa pela estrutura condicional os valores não são salvos.. o imc sempre dá como 20 independente do resultado do cálculo.
Sou novo em programação então não sei se tudo o que escrevi está de acordo.
#include <iostream>
#include <string.h>
using namespace std;
struct paciente {
char nome[30];
float altura;
float peso;
float imc; //para calcular deve-se dividir o peso pela altura
char classificacao[25];
int telefone ;
/* classificação do imc = abaixo de 20 Abaixo do Peso
20 a 25 Peso Ideal
25 a 30 Sobrepeso
30 a 35 Obesidade Leve
35 a 40 Obesidade Mederada
40 a 50 Obesidade Mórbida
acima de 50 Super Obesidade*/
}paciente1 , paciente2;
int main()
{
cout << "Cadastro de Pacientes" <<endl;
cout << "\n";
cout << "Digite o nome do paciente 1:" << endl;
cin >> paciente1.nome;
cout << "Digite a altura do paciente 1:" << endl;
cin >> paciente1.altura;
cout << "Digite o peso do paciente 1:" << endl;
cin >> paciente1.peso;
cout << "Digite o telefone do paciente 1:" << endl;
cin >> paciente1.telefone;
paciente1.imc = paciente1.peso / (paciente1.altura*paciente1.altura);
cout << paciente1.imc;
//esse cout é apenas para mostrar que o cálculo está saindo corretamente.
if (paciente1.imc < 20.0){
strcpy(paciente1.classificacao,"Abaixo do Peso");
}
//fiz um teste com o IF antes de escrever tudo e estava OK.
else if ((paciente1.imc = 20.0) && (paciente1.imc <= 25.0)){
strcpy(paciente1.classificacao,"Peso Ideal");
}
else if ((paciente1.imc = 26.0) && (paciente1.imc <= 30.0)){
strcpy(paciente1.classificacao,"Sobrepeso");
}
else if ((paciente1.imc = 31.0) && (paciente1.imc <= 35.0)){
strcpy(paciente1.classificacao,"Obedidade Leve");
}
else if ((paciente1.imc = 36.0) && (paciente1.imc <= 40.0)){
strcpy(paciente1.classificacao,"Obesidade Moderada");
}
else if ((paciente1.imc = 41.0) && (paciente1.imc <= 50.0)){
strcpy(paciente1.classificacao,"Obesidade Morbida");
}
else{
strcpy(paciente1.classificacao,"Super Obesidade");
};
cout << "\n";
cout << "Digite o nome do paciente 2:" << endl;
cin >> paciente2.nome;
cout << "Digite a altura do paciente 2:" << endl;
cin >> paciente2.altura;
cout << "Digite o peso do paciente 2:" << endl;
cin >> paciente2.peso;
cout << "Digite o telefone do paciente 2:" << endl;
cin >> paciente2.telefone;
paciente2.imc = paciente2.peso / (paciente2.altura*paciente2.altura);
cout << paciente2.imc;
if (paciente2.imc < 20.0){
strcpy(paciente2.classificacao,"Abaixo do Peso");
}
else if ((paciente2.imc = 20.0) && (paciente2.imc <= 25.0)){
strcpy(paciente2.classificacao,"Peso Ideal");
}
else if ((paciente2.imc = 26.0) && (paciente2.imc <= 30.0)){
strcpy(paciente2.classificacao,"Sobrepeso");
}
else if ((paciente2.imc = 31.0) && (paciente2.imc <= 35.0)){
strcpy(paciente2.classificacao,"Obedidade Leve");
}
else if ((paciente2.imc = 36.0) && (paciente2.imc <= 40.0)){
strcpy(paciente2.classificacao,"Obesidade Moderada");
}
else if ((paciente2.imc = 41.0) && (paciente2.imc <= 50.0)){
strcpy(paciente1.classificacao,"Obesidade Morbida");
}
else {
strcpy(paciente2.classificacao,"Super Obesidade");
};
system ("cls");
cout << "Dados do Paciente 1:" << endl << "\n";
cout << "Nome: " << paciente1.nome << endl;
cout << "Altura: " << paciente1.altura << "\t" << "Peso: " << paciente1.peso << endl;
cout << "IMC: " << paciente1.imc << "\t" << "Classificacao: " << paciente1.classificacao << endl;
cout << "\n\n";
cout << "Dados do Paciente 2:" << endl << "\n";
cout << "Nome: " << paciente2.nome << endl;
cout << "Altura: " << paciente2.altura << "\t" << "Peso: " << paciente2.peso << endl;
cout << "IMC: " << paciente2.imc << "\t" << "Classificacao: " << paciente2.classificacao << endl;
Pergunta
deadlocK_
Fala galera, beleza?
Estou tentando fazer o código abaixo funcionar mas tá complicado. A questão é que fiz alguns testes e os cálculos estão batendo, mas quando o programa passa pela estrutura condicional os valores não são salvos.. o imc sempre dá como 20 independente do resultado do cálculo.
Sou novo em programação então não sei se tudo o que escrevi está de acordo.
#include <iostream>
#include <string.h>
using namespace std;
struct paciente {
char nome[30];
float altura;
float peso;
float imc; //para calcular deve-se dividir o peso pela altura
char classificacao[25];
int telefone ;
/* classificação do imc = abaixo de 20 Abaixo do Peso
20 a 25 Peso Ideal
25 a 30 Sobrepeso
30 a 35 Obesidade Leve
35 a 40 Obesidade Mederada
40 a 50 Obesidade Mórbida
acima de 50 Super Obesidade*/
}paciente1 , paciente2;
int main()
{
cout << "Cadastro de Pacientes" <<endl;
cout << "\n";
cout << "Digite o nome do paciente 1:" << endl;
cin >> paciente1.nome;
cout << "Digite a altura do paciente 1:" << endl;
cin >> paciente1.altura;
cout << "Digite o peso do paciente 1:" << endl;
cin >> paciente1.peso;
cout << "Digite o telefone do paciente 1:" << endl;
cin >> paciente1.telefone;
paciente1.imc = paciente1.peso / (paciente1.altura*paciente1.altura);
cout << paciente1.imc;
//esse cout é apenas para mostrar que o cálculo está saindo corretamente.
if (paciente1.imc < 20.0){
strcpy(paciente1.classificacao,"Abaixo do Peso");
}
//fiz um teste com o IF antes de escrever tudo e estava OK.
else if ((paciente1.imc = 20.0) && (paciente1.imc <= 25.0)){
strcpy(paciente1.classificacao,"Peso Ideal");
}
else if ((paciente1.imc = 26.0) && (paciente1.imc <= 30.0)){
strcpy(paciente1.classificacao,"Sobrepeso");
}
else if ((paciente1.imc = 31.0) && (paciente1.imc <= 35.0)){
strcpy(paciente1.classificacao,"Obedidade Leve");
}
else if ((paciente1.imc = 36.0) && (paciente1.imc <= 40.0)){
strcpy(paciente1.classificacao,"Obesidade Moderada");
}
else if ((paciente1.imc = 41.0) && (paciente1.imc <= 50.0)){
strcpy(paciente1.classificacao,"Obesidade Morbida");
}
else{
strcpy(paciente1.classificacao,"Super Obesidade");
};
cout << "\n";
cout << "Digite o nome do paciente 2:" << endl;
cin >> paciente2.nome;
cout << "Digite a altura do paciente 2:" << endl;
cin >> paciente2.altura;
cout << "Digite o peso do paciente 2:" << endl;
cin >> paciente2.peso;
cout << "Digite o telefone do paciente 2:" << endl;
cin >> paciente2.telefone;
paciente2.imc = paciente2.peso / (paciente2.altura*paciente2.altura);
cout << paciente2.imc;
if (paciente2.imc < 20.0){
strcpy(paciente2.classificacao,"Abaixo do Peso");
}
else if ((paciente2.imc = 20.0) && (paciente2.imc <= 25.0)){
strcpy(paciente2.classificacao,"Peso Ideal");
}
else if ((paciente2.imc = 26.0) && (paciente2.imc <= 30.0)){
strcpy(paciente2.classificacao,"Sobrepeso");
}
else if ((paciente2.imc = 31.0) && (paciente2.imc <= 35.0)){
strcpy(paciente2.classificacao,"Obedidade Leve");
}
else if ((paciente2.imc = 36.0) && (paciente2.imc <= 40.0)){
strcpy(paciente2.classificacao,"Obesidade Moderada");
}
else if ((paciente2.imc = 41.0) && (paciente2.imc <= 50.0)){
strcpy(paciente1.classificacao,"Obesidade Morbida");
}
else {
strcpy(paciente2.classificacao,"Super Obesidade");
};
system ("cls");
cout << "Dados do Paciente 1:" << endl << "\n";
cout << "Nome: " << paciente1.nome << endl;
cout << "Altura: " << paciente1.altura << "\t" << "Peso: " << paciente1.peso << endl;
cout << "IMC: " << paciente1.imc << "\t" << "Classificacao: " << paciente1.classificacao << endl;
cout << "\n\n";
cout << "Dados do Paciente 2:" << endl << "\n";
cout << "Nome: " << paciente2.nome << endl;
cout << "Altura: " << paciente2.altura << "\t" << "Peso: " << paciente2.peso << endl;
cout << "IMC: " << paciente2.imc << "\t" << "Classificacao: " << paciente2.classificacao << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Valeu pela ajuda!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.