Ir ao conteúdo
  • Cadastre-se
Leonardo Drescher

C Código com Funções em C

Posts recomendados

Preciso de ajuda, estou utilizando funções para calcular o IMC, porém quando coloco números FLOAT (com vírgula), ele diz que o resultado é zero.  Alguém poderia me dar uma luz

#include #include 
float LePositivo(A)
{
int i;
do
{
i=0;
printf("Para calcularmos o IMC(Indice de Massa Corporal) precisamos de:\n");
printf("Sua altura(metros)\n");
scanf("%f",&A);
if (A<=0)
{
i++;
printf("Numero invalido\n\n");
}
}while (i==1);
return A;
}
float PositivoLe(B)
{
int i;
do
{
i=0;
printf("Seu peso(kg)\n");
scanf("%f",&B);
if (B<=0)
{
i++;
printf("Numero invalido\n\n");
}
}while (i==1);
return B;
}
int main()
{
float IMC,P,H;
P=LePositivo();
H=PositivoLe();
IMC=(P/(H*H));
printf("Seu IMC eh %f \n", IMC);

return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Leonardo Drescher Dei uma arrumada no código testa ai

/* Adicionei essas duas bibliotecas para propositos gerais */
#include <stdio.h>
#include <stdlib.h>

/* Ignorar toda essa decalração 
floatLePositivo (A)
{
  int i;
  do
    {
      i = 0;
      printf("Para calcularmos o IMC(Indice de Massa Corporal) precisamos de:\n");
      printf ("Sua altura(metros)\n");
      scanf ("%f", &A);
      if (A <= 0)
	{
	  i++;
	  printf ("Numero invalido\n\n");
	}
    }
  while (i == 1);
  return A;
}

float PositivoLe (B)
{
  int i;
  do
    {
      i = 0;
      printf ("Seu peso(kg)\n");
      scanf ("%f", &B);
      if (B <= 0)
	{
	  i++;
	  printf ("Numero invalido\n\n");
	}
    }
  while (i == 1);
  return B;
}
*/

/* Prototipo da função */
float LePositivo(void);

int main ()
{
  float IMC, P, H;    /* Evite nomes com letras maiusculas */
  printf("\nPara calcularmos o IMC(Indice de Massa Corporal) precisamos de");
  printf("\nSua altura(metros):\t");
  H = LePositivo();
  printf ("\nSeu peso(kg)\t");
  P = LePositivo();
  IMC =P/(H*H);
  printf ("Seu IMC eh %2.2f \n", IMC);
  return(0);
}

/* Implementaçẽos */

float LePositivo(void)
{
  float real;
  do
  {
    scanf("%f",&real);
    getchar();    /* Retira o NewLine do buffer de teclado */
    if(real<0)
    {
      printf("\nPor favor digite apenas numeros positivos");
      printf("\nDigite novamente:\t");
    }
  }while(real<0);
  return(real);
}

 

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!