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

(Resolvido) Dúvida Passagem de Parâmetro


Newton_Einherjar

Pergunta

Boa tarde, pessoal! Sou novo no fórum e estou com dificuldade em um programa para calcular o peso ideal de uma pessoa tendo a altura e o sexo. Segue o código:

 
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int peso_ideal(float calc);
 
main ()
{
float altura, calc;
char sexo, pso;
 
printf("\nPrograma para calcular o peso ideal");
 
printf("\nInforme 'M' para masculino e 'F' para feminino");
 
scanf("%s",&sexo);
printf("\nInforme a altura.");
scanf("%f",&altura);
calc = peso_ideal(pso);
printf("\n O seu peso ideal deve ser: %3.2f", calc);
getch();
}
         int peso_ideal(float calc)
         {
             int pso;
             if (sexo == 'M')
              calc = 72.9*(altura-5);
              else
              calc = 62.1*(altura-44.7);
              return(calc);
             }
Como podem ver, não estou conseguido fazer usando passagem de parâmetro. O compilador (Dev C++) indica os erros:
In function 'int peso_ideal(float)':
[Error]'sexo' was not declared in this scope
[Error] 'altura' was not declared in this scope
Eu já tentei em "calc = peso_ideal(pso);" mudar para "calc = peso_ideal(sexo, altura);", mas também não funciona. Podem me ajudar, por favor? Grato!
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Não sei se ainda lhe interesa mas acho que posso lhe dar algumas dicas, já que no momento não tenho como testar o codigo no meu compilador!

- sempre que possivel tente declarar as suas proprias funções no inicio do seu código, acho que este deve ser o que esta causando o erro que você descreveu e exatamente o que o amigo acima disse.

- no meu caso eu vou eliminar o uso da biblioteca conio.h já que a mesma não poderia ser utilizada no meu sistema: Linux ! Não sei se lhe seria interessante elimina-la, embora seja dificil existe a possibilidade dela estar relacionada com algum outro erro ou alerta, no seu programa.

- char até onde pude estudar pode ser usada tanto para a declaração de um unico caractere char sexo, quanto para uma string char sexo [ 10 ], sendo que ate onde sei %s é usado para strings, sendo que no seu caso o certo se não me engano é a utilização de %c para a entrada de caracteres unicos.

- em: calc = 72.9*(altura-5); o -5 esta mesmo certo?, fiz uns calculos apenas com esta parte do codigo em uma calculadora e apenas se eu utilizar 55.7 vai aparecer um resultado proximo do que acho que você quer em seu algoritmo!

- e eu não tenho certeza mas acredito que você vá precisar de um int main ( ) logo no inicio e talvez de um return 0; antes da chave de encerramento do codigo!

Como eu disse sou iniciante e auto-didata em C e no momento não estou com um compilador, mas vou tentar testar o codigo mais tarde!

Espero ter Ajudado!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Não sei se ainda lhe interesa mas acho que posso lhe dar algumas dicas, já que no momento não tenho como testar o codigo no meu compilador!

- sempre que possivel tente declarar as suas proprias funções no inicio do seu código, acho que este deve ser o que esta causando o erro que você descreveu e exatamente o que o amigo acima disse.

- no meu caso eu vou eliminar o uso da biblioteca conio.h já que a mesma não poderia ser utilizada no meu sistema: Linux ! Não sei se lhe seria interessante elimina-la, embora seja dificil existe a possibilidade dela estar relacionada com algum outro erro ou alerta, no seu programa.

- char até onde pude estudar pode ser usada tanto para a declaração de um unico caractere char sexo, quanto para uma string char sexo [ 10 ], sendo que ate onde sei %s é usado para strings, sendo que no seu caso o certo se não me engano é a utilização de %c para a entrada de caracteres unicos.

- em: calc = 72.9*(altura-5); o -5 esta mesmo certo?, fiz uns calculos apenas com esta parte do codigo em uma calculadora e apenas se eu utilizar 55.7 vai aparecer um resultado proximo do que acho que você quer em seu algoritmo!

- e eu não tenho certeza mas acredito que você vá precisar de um int main ( ) logo no inicio e talvez de um return 0; antes da chave de encerramento do codigo!

Como eu disse sou iniciante e auto-didata em C e no momento não estou com um compilador, mas vou tentar testar o codigo mais tarde!

Espero ter Ajudado!

Agradeço as dicas, vou testar aqui!

edit:

Funcionou, valeu mesmo! ^_^

Editado por Newton_Einherjar
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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...