2015-11-13 148 views
-7

我不知道我是否有錯誤理解pow的概念,但我已經嘗試了很多東西,但是,在這裏會感謝一些幫助,爲什麼pow不工作。 我試圖計算體重指數這是體重指數=體重/(長度^ 2)我知道我可以做(長度* 2),但我想學習功能。在C中pow()無法正常工作

#include <stdio.h> 
#include <conio.h> 
#include <math.h> 

int main() 


{ 
    float langd1; 
    float langd2; 
    float langd3; 
    float langd4; 
    float vikt1; 
    float vikt2; 
    float vikt3; 
    float vikt4; 

    { 

     printf("Whats your weight?"); 
     scanf_s("%f", &vikt1); 
     printf("Whats your weight?"); 
     scanf_s("%f", &vikt2); 
     printf("Whats your weight?"); 
     scanf_s("%f", &vikt3); 
     printf("Whats your weight?"); 
     scanf_s("%f", &vikt4); 

     printf("Whats your lenght?"); 
     scanf_s("%f", &langd1); 
     printf("Whats your lenght?"); 
     scanf_s("%f", &langd2); 
     printf("Whats your lenght?"); 
     scanf_s("%f", &langd3); 
     printf("Whats your lenght?"); 
     scanf_s("%f", &langd4); 

     printf("User 1, your BMI is %f", vikt1/pow(langd1)); 

     system("pause"); 


    } 
    getchar(); 
    return(0); 


} 
+7

'POW()'有兩個參數,你給它一個。甚至不應該編譯。 –

+4

'pow(x,y)'絕對不是'2 * x' ... – usr2564301

+2

@Jongware除非'x == 2',但這是一個邊緣情況。 –

回答

3

您應該使用pow(langd1,2)

pow()需要兩個參數。第一個是基數,第二個是指數。它返回(base^exponent)

如果您不給它第二個參數,它會調用未定義的行爲。 編輯:其實它只是不會編譯。我曾與這些可變參數混淆。

有關詳細信息,請參閱http://www.tutorialspoint.com/c_standard_library/c_function_pow.htm

+2

如何在沒有匹配簽名的情況下編譯? –

+1

我永遠不會使用pow(x,2)。 x * x有什麼問題? – FredK