输出与 c 中的代码不匹配(双变量)

Output not match the code in c (double variable)

我是 c 的新手,正在尝试使用双精度变量。不幸的是,编译器 (Code::Blocks) 似乎完全忽略了我正在写的内容。

#include<stdio.h>
int main()
{
    double x=1.03;
    printf("x: %lf",x);
    return 0;
}

输出为:

x: 0.000000

有什么问题?

使用 %f 而不是 %lf。双打只需要%f;看到 "specifiers" table here.

如果 printf 正在寻找比您提供的更大的值,打印出来的内容将受到您提供的 x 参数附近内存中碰巧的内容的影响。在这种情况下,我猜是 0.

编辑:感谢@Olaf 指出 specification%lf 应该可以正常工作。显然,OP 的编译器或编译器版本是非标准的。或者,也许项目设置正在选择非标准的编译器行为。 (我想 printf 的编译器或库实现也可能有问题。)