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

Erro no Code blocks


juninhomadruga10

Pergunta

Galera, sou novo na area de computação e queria saber se tem algo de errado neste que fiz, pois eu compilo ele no codeblocks e na hora de executar eu coloco o valor de peso e da erro. se alguém puder me ajudar agradeço

#include <stdio.h>

int main()
{

int peso;
float altura;
float imc;

printf("Digite o seu peso:");
scanf("%i", peso);

printf("Digite sua altura:");
scanf("%f", altura);

imc = peso / altura * altura;

printf("O valor do seu imc e = %f", imc);


    return 0;
}
 

Se puderem me ajudar fico agradecido

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

 

Bom encontrei alguns pequenos, mas relevantes problemas no seu codigo . . .

 

- Para o seu algoritmo o ideal é de que todas as suas variaveis sejam do tipo float, incluindo a variavel peso.

- Nos seus dois scanf() faltou o  ( & ) antes do nome da variavel para indicar o endereço da mesma, sem isso é problema na certa.

- no calculo do IMC, na Linguagem C assim como em boa parte das linguagens de programação, existe algo chamado prescedencia de operadores, o que significa que se voce não especificar quais operações ( + - / * - entre outras ) devem ser realizadas primeiro, a Linguagem C vai usar a prescedencia definida pela propria Linguagem de Programação, neste caso a Linguagem C, vai primeiro fazer a divisão do peso pela altura, e depois multiplicar o resultado pela altura, o que vai dar como resultado aproximado 45. Para evitar que isso aconteça voce deve usar parenteses para especificar a ordem das operações, neste caso IMC = peso / ( altura * altura );

 

- Alem disso o compilador atraves da sua IDE deve ter lhe retornado algum destes alertas:

 

Os dois alertas seguintes estão relacionados ao fato de que ao declarar uma variável é sempre bom definir um valor nulo inicial antes de usar a variável, normalmente para evitar problemas com o lixo de memoria, ex: float peso = 0;

 

|11|warning: ‘peso’ is used uninitialized in this function [-Wuninitialized]|

 

|14|warning: ‘altura’ is used uninitialized in this function [-Wuninitialized]|

 

Os dois alertas seguintes estão relacionados ao fato de que voce esqueceu o ( & ) para indicar o endereço das variaveis que serão usadas:

 

|11|warning: format ‘%i’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]|

 

|14|warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double’ [-Wformat=]|

 

 

Bom por hora é só . . . Veja se com as dicas acima o problema se resolve . . .

 

Ubuntu 14.04  GCC 4.8  CodeBlocks 13.12

 

Espero Ter Ajudado ! ! !

Editado por Felipe222
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...