在C中pow()无法正常工作
问题描述:
我不知道我是否有错误理解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);
}
答
您应该使用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
'POW()'有两个参数,你给它一个。甚至不应该编译。 –
'pow(x,y)'绝对不是'2 * x' ... – usr2564301
@Jongware除非'x == 2',但这是一个边缘情况。 –