Ir para conteúdo
Fórum Script Brasil
  • 0

gente, ajude-me neste simples codigo que calcula a altura futura de uma criança a partir das alturas dos pais (formula de tanner) taa dando erro e eu n sei o que é ...pf


davidk.

Pergunta

#include <stdio.h>
#include <stdlib.h>

float altura (float altx, float alty);
float altura2 (float altx, float alty);
 
 main()
{
    float a,b,c;
    char ch;

  printf("QUAL O SEU SEXO [f/m]: ");
  scanf(" %c", &ch);
        fflush(stdin);
    printf ("Digite a altura de seu pai : ");
    scanf(" %d", &a);
    fflush(stdin);
    printf ("Digite a altura de sua mae: ");
    scanf(" %d", &b);
    fflush(stdin);
    
  ch=toupper (ch);
  if (ch == 'M'){
      c=altura(a,b);
        printf(" %.2f\n",c);
    
      
    }else{
      
        printf(" %.3f\n",altura2(a,b));

    }
    
system("pause");
return 0;
}

float altura (float altx, float alty)
{
    return altx+alty+13/2;
    
}

float altura2 (float altx, float alty)
{
    return (altx+alty-13) /2;
    
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

 

Bom aqui agora estou usando o MonoDevelop, e ele apontou 2 erros, que no Code Blocks e talvez outras IDEs seriam tratados apenas como alertas:

 

- os erros ( alertas ) dizem respeito sobre as linhas 18 e 22 onde você colocou os códigos de formatação errados ( %d – inteiro ) para as variáveis, quando o correto seria ( %f – flutuante )

 

- o erro que parece estar causando os valores errados diz respeito aos valores ( + 13; ) e ( -13; ) usados para o calculo, neste caso é só substitui-los por ( +0.065; ) e ( -0.065; ) o equivalente a 6 centímetros calculo eu, e pelo que pude entender da formula dando uma olhada na Web.

 

Além disso é sempre bom você colocar por segurança e melhor organização do código parênteses separando cada parte da expressão a ser resolvida na ordem correta:

 

return ( ( altx + alty ) / 2 + 0.065;

return ( ( altx + alty ) / 2 - 0.065;

 

Obs.: a função fflush ( stdin ); é uma função que deve ser evitada ser usada na limpeza de buffer do teclado, ela é uma função que não foi feita para esta tarefa especifica, embora funcione, existe a possibilidade de ela apresentar um comportamento indefinido, causando os mais diversos problemas no codigo, sendo assim não a use tente buscar outras solução para a limpeza de buffer do teclado.

 

Ubuntu 14.04 LTS    MonoDvelop 4.0.12

 

Espero Ter Ajudado ! ! !

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...