无法理解为什么会生成这个输出

问题描述 投票:0回答:1

在这里,我在 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

c printf
1个回答
0
投票
printf("%3.0d %6.1f\n",fahr,celsius);

%d 是打印一个整数,你的

fahr
float
。更改为:

printf("%3.0f %6.1f\n",fahr,celsius);
© www.soinside.com 2019 - 2024. All rights reserved.