2017-03-17 59 views
-4

不知道我做错了什么。该程序运行,但没有做的数学公式correctly.Plz帮助格式太多的参数。 C on eclipse

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

    int main(void) { 
     float peso, altura, imc; 
     desativarBufferConsole(); 
     printf("\ndigite o seu peso em Kg"); 
     scanf("%f", &peso); 
     printf("\ndigite a sua altura em m"); 
     scanf("&f", &altura); 
     imc = (peso)/(altura*altura); 
     scanf("%f", &imc); 
     printf("\no seu imc e: %f", imc); 
     limpaBufferStdin(); 
     pausar(); 
     return 0; 
    } 
+0

heh?代码的其余部分是什么? –

+8

'scanf(“&f”,&altura);'... WTH? –

+2

除了缺少代码和语法错误之外,在计算它之后,您似乎正在读取用户对“imc”变量的输入,因此会覆盖计算的值。 – CarLuva

回答

1

你拥有了一个语法错误在下面一行:

scanf("&f", &altura); 

格式说明是对子级不%f&f

因此,改变你的线路:

scanf("%f", &altura); 

另一件事我想指出:

imc = (peso)/(altura*altura); 
    scanf("%f", &imc); 
    printf("\no seu imc e: %f", imc); 

在这里,你做一个计算,存储值在imc,然后你问输入将再次存储在imc中,失去之前的计算值。这是一个逻辑错误,你应该自己理清。