Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Rodrigues Torre

[Resolvido] 

Recommended Posts

Gostaria de saber pq este programa não mostra o peso idel de acordo com o sexo

O que esta errado?

 

 

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

int altura, pe_ide;
char sexo;
main()
{
printf("\n Entre com a sua altura");
scanf("%d",&altura);
printf("\n Entre com o seu sexo");
scanf("%c",&sexo);

  if (sexo == 'M')
  {
  pe_ide = (72.7 * altura - 58); // calcula peso ideal do Homem
  }
  else
	if (sexo == 'F')
	  {
	  pe_ide = (62.1 * altura - 44.7); // calcula peso ideal da Mulher
	  }
  
printf("O seu peso ideal e %.2d: ",pe_ide);	//Mostra o peso ideal
 
printf("\n\n");

system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente não tem muito o que mexer.

 

Veja isso e teste, se não funcionar diga nos os erros apresentados:

 

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

int altura;
float pe_ide;
char sexo;
main()
{
   printf("\n Entre com a sua altura");
   scanf("%d",&altura);
   printf("\n Entre com o seu sexo");
   scanf("%c",&sexo);

   if (sexo == 'M')
   {
	  pe_ide = (72.7 * altura - 58); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F')
	  pe_ide = (62.1 * altura - 44.7); // calcula peso ideal da Mulher
   }

   printf("O seu peso ideal e %.2f: ",pe_ide); //Mostra o peso ideal

   printf("\n\n");

   system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara no meu compilador aki do jeito q esta qnd você digita a altura ele pula e num pede o sexo e fala q o peso ideal é 0..

caso isso ocorra com você, inverta a ordem dos printf, assim:

printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);
   printf("\n Entre com a sua altura: ");
   scanf("%d",&altura);

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça o algoritmo assim:

 

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

float pe_ide, altura;
char sexo;
main()
{
   printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);   
   printf("\n Entre com a sua altura: ");
   scanf("%f",&altura);

   if (sexo == 'M')
   {
	  pe_ide = ((72.7 * altura) - 58); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F')
	  pe_ide = ((62.1 * altura) - 44.7); // calcula peso ideal da Mulher
   }

   printf("O seu peso ideal e: %.2f",pe_ide); //Mostra o peso ideal

   printf("\n\n");

   system("pause");

}
e assim qnd for digitar a altura faça assim:

ex: 1.10 ao invez de 1,10

 

volte com o resultado :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece porque o \n fica no buffer.

Tente assim:

 

printf("\n Entre com a sua altura: ");
   scanf("%d",&altura);
   getchar();
   printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);

cara no meu compilador aki do jeito q esta qnd você digita a altura ele pula e num pede o sexo e fala q o peso ideal é 0..

caso isso ocorra com você, inverta a ordem dos printf, assim:

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm... interessante isso!!

nova informação é sempre bem vinda :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu o mesmo erro

O programa me retornou 0 no peso ideal

E eu usei 1.15 na altura

Conforme você havia me dito.

faça o algoritmo assim:

 

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

float pe_ide, altura;
char sexo;
main()
{
   printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);   
   printf("\n Entre com a sua altura: ");
   scanf("%f",&altura);

   if (sexo == 'M')
   {
	  pe_ide = ((72.7 * altura) - 58); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F')
	  pe_ide = ((62.1 * altura) - 44.7); // calcula peso ideal da Mulher
   }

   printf("O seu peso ideal e: %.2f",pe_ide); //Mostra o peso ideal

   printf("\n\n");

   system("pause");

}
e assim qnd for digitar a altura faça assim:

ex: 1.10 ao invez de 1,10

 

volte com o resultado :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando se trabalha com flot os números inteiros precisam vir com .0

Teste isso:

 

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

float pe_ide, altura;
char sexo;
main()
{
   printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);   
   printf("\n Entre com a sua altura: ");
   scanf("%f",&altura);

   if (sexo == 'M')
   {
	  pe_ide = ((72.7 * altura) - 58.0); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F')
	  pe_ide = ((62.1 * altura) - 44.7); // calcula peso ideal da Mulher
   }

   printf("O seu peso ideal e: %f",pe_ide); //Mostra o peso ideal

   printf("\n\n");

   system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade o programa me retornou novamente 0 no peso ideal

Sera que eu não posso colocar assim no meu código?

Ou isto esta errado?

 

 if (sexo == 'M')
   {
	  pe_ide = ((72,7 * altura) - 58); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F')
	  pe_ide = ((62,1 * altura) - 44,7); // calcula peso ideal da Mulher
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa cara estranho, aki apareceu certinho..

você percebeu q tem no algoritmo q você rodow tem q digitar o sexo primeiro neh?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é vírgula "," é ponto "."

 

ALtere no código todo.

 

Em vez de

pe_ide = ((72,7 * altura) - 58);

faça isso:

 

pe_ide = ((72.7 * altura) - 58.0);

Compartilhar este post


Link para o post
Compartilhar em outros sites

tbm cara certifique-se q você compilow o código correto e não o antigo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha cara faz assim, testa essa do jeito q esta e me fala:

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

float pe_ide, altura;
char sexo;
main()
{
   printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);   
   printf("\n Entre com a sua altura: ");
   scanf("%f",&altura);

   if (sexo == 'M' || sexo == 'm')
   {
	  pe_ide = ((72.7 * altura) - 58); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F' || sexo == 'f')
	  pe_ide = ((62.1 * altura) - 44.7); // calcula peso ideal da Mulher
   }

   printf("O seu peso ideal e: %.2f",pe_ide); //Mostra o peso ideal

   printf("\n\n");

   system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz e deu certinho

O problema era na hora de colocar o M ou o F eu colocava em minuscula e nó meu código esta como maiscula.

Só um detalhe o peso pode ser negativo?

O programa me retorna o peso negativo ao ivés de me retornar como positivo

O erro esta na hora de fazer a conta?

 

olha cara faz assim, testa essa do jeito q esta e me fala:

/*mostrar peso ideal */
# include<stdio.h>
# include<stdlib.h> 

float pe_ide, altura;
char sexo;
main()
{
   printf("\n Entre com o seu sexo: ");
   scanf("%c",&sexo);   
   printf("\n Entre com a sua altura: ");
   scanf("%f",&altura);

   if (sexo == 'M' || sexo == 'm')
   {
	  pe_ide = ((72.7 * altura) - 58); // calcula peso ideal do Homem
   }
   else{
   if (sexo == 'F' || sexo == 'f')
	  pe_ide = ((62.1 * altura) - 44.7); // calcula peso ideal da Mulher
   }

   printf("O seu peso ideal e: %.2f",pe_ide); //Mostra o peso ideal

   printf("\n\n");

   system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom o peso pode ser negativo c você colocar a altura negativa..

 

dica sobre trabalhar com maisculas ow minusculas.. na hr do if faça assim:

if (sexo == 'F' || sexo == 'f') ////
entenda o sinal de '||' como o operador 'ou'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.