Mith6 0 Denunciar post Postado Setembro 8, 2017 estou criando fazendo um trabalho para casa da faculdade e não consigo terminar uma baseada no imc "O peso ideal para uma pessoa é calculado pelas seguintes fórmulas: Sexo Masculino: (72.7*altura)-58 e Sexo Feminino: (62.1*altura)-44.7 Escreva um programa que receba como entrada: sexo (f ou m), altura e peso; calcule o peso ideal usando a fórmula que for pertinente. Como resultado o programa deve exibir na tela: a diferença entre os pesos (peso e peso ideal) e um alerta: “*** Peso normal ou abaixo do ideal ***” " #include<stdio.h> #include<stdlib.h> #include<math.h> main () { float a,p,pim,pif,m,f,imc; //no caso estou fazendo primeiro o masculino char sexo; printf("Informe o sexo! m para masculino e f para feminino. "); scanf("%c", &sexo); printf("Altura. "); scanf("%f", &a); printf("Peso. "); scanf("%f", &p); imc = p / (a*a); pim = (72.7*a)-58; //pim significa peso ideal masculino ou seja peso ideal para a altura if ((sexo==m) && (imc>=pim)) printf("\nO peso ideal nao eh ideal: %f",pim); else printf("Seu peso eh ideal!\n",pim); system ("pause"); } estou com serias duvidas do que fazer, se estou errando no if porque o importa o valor que eu por no .exe ele sempre vai dar "o peso é ideal" Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo B. Tosin 2 Denunciar post Postado Outubro 20, 2017 scanf("%c", &sexo); não se usa isso para char, deve usar getch() ou getche(), diferença que um aparece na tela o char e outro não. Até da para usar do jeito que fizestes, mas tem que haver logo em seguida o: fflush(stdin); para limpar o buffer, porque se não vai entrar sujeira e pode ser que isso esteja dando erro no seu código. Compartilhar este post Link para o post Compartilhar em outros sites
Wilkyn Fernandes Taborda 0 Denunciar post Postado Outubro 2, 2020 Mith6 o programa realiza somente cálculos simples e não precisa incluir a biblioteca math.h. É desnecessário que haja a variável imc e também calculá-la pois o enunciado não pede essa informação. Está faltando o cálculo do peso ideal para sexo feminino. Está-se comparando a variável sexo com a variável m que não é mesma coisa que o caractere 'm'. Deve-se trocar. Variáveis m e f não são usadas. Podem ser removidas. main(){ float a,p,pi; char sexo; printf("Informe o sexo. m para masculino e f para feminino:"); scanf("%c",&sexo); printf("Altura:"); scanf("%f",&a); printf("Peso:"); scanf("%f",&p); if(sexo=='m') pi=(72.7*a)-58; else pi=(62.1*a)-44.7; if(p>pi) printf("O peso esta acima do ideal.\n"); else if(p<pi) printf("O peso esta abaixo do ideal.\n"); else printf("O peso e ideal!\n"); system ("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites