在这里,我在 printf 语句中错误地尝试以 %d 格式说明符打印浮点值,因此它给出了一个随机值,这是可以的,但对于下一个 %6.1f ** 为什么它打印等式的 0.0 而不是 -17.8 输出 ** 代码
#include <stdio.h>
main()
{
float fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper){
celsius = (5.0/9.0) * (fahr-32.0); // equation
printf("%3.0d %6.1f\n",fahr,celsius); // this line is confusing
fahr = fahr + step;
}
}
输出 -1693570760 0.0 32109216 20.0 32109216 40.0 32109216 60.0 32109216 80.0 32109216 100.0 32109216 120.0 32109216 140.0 32109216 160.0 32109216 180.0 32109216 200.0 32109216 220.0 32109216 240.0 32109216 260.0 32109216 280.0 32109216 300.0
帮助我理解如何执行这段代码以及为什么输出是 0.0 而不是 -17.8
printf("%3.0d %6.1f\n",fahr,celsius);
%d 是打印一个整数,你的
fahr
是 float
。更改为:
printf("%3.0f %6.1f\n",fahr,celsius);