用C打印控制

时间:2011-09-23 22:42:24

标签: c math

当我执行下面的代码时,编译器返回消息“(。text + 0x31):未定义引用'sqrt'”。但如果我带走了q *,编译器正确地给了我8.000000 我试图让程序将INCREMENT乘以1(当我写入循环时最终为2和3)。

为什么以下不起作用?

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

#define INCREMENT   64

int main () 
{
    int q = 1;
    printf("%f", sqrt(q*INCREMENT));
    return 0;
}    

2 个答案:

答案 0 :(得分:3)

您可能需要链接到数学库。 (虽然我认为visual C ++会自动执行此操作...)

它在没有q的情况下工作的原因是因为编译器正在优化sqrt,因为它是一个常量。

答案 1 :(得分:0)

代码是正确的c代码。我在vs 2010下测试了它,它返回了值8.但是它不是正确的c ++代码。当参数是整数时,sqrt变得有限。您的源文件是否可能具有 .cpp 扩展名,而不是 .c 扩展名?

相关问题