Jump to content
Fórum Script Brasil
  • 0

Erro no Code blocks


juninhomadruga10
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 ! ! !

Edited by Felipe222
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...