C语言不给我小数输出

C language not giving me the output in decimals

//Converts Farenheit tempretaure to into the celsius scale

#include <stdio.h>
#define FREEZING_PT 32.0f
#define FACTOR 5.0f/9.0f

int main(void)
{
    float faren,c;

    printf("Enter the Farenheit temperature: ");
    scanf("%f",&faren);
    float c = (faren - FREEZING_PT)*FACTOR;

    printf("The required celsius tempreature is: %.1f\n", c);

    return 0;
}

我是一个完全的 C 初学者,这可能是非常初级的,但我无法弄清楚这里的问题。

在上面的代码中,我得到的返回值始终是整数值的摄氏温度,即使它是浮点型。例如,如果华氏温度为 0°,则摄氏温度的结果应为 -17.7°,但我得到的结果仅为 -17°。

编辑代码:

//Converts Farenheit tempretaure to into the celsius scale

#include <stdio.h>
#define FREEZING_PT 32.0f
#define FACTOR 5.0f/9.0f

int main(void)
{
    float faren,c;

    printf("Enter the Farenheit temperature: ");
    scanf("%f",&faren);
    c = (faren - FREEZING_PT)*FACTOR;

    printf("The required celsius tempreature is: %.1f\n", c);

    return 0;
}

在您的代码中,您已经声明变量 'c' 两次。删除变量 'c' 的第一个声明后,它工作正常。

我得到了正确的输出。

Enter the Farenheit temperature: 0

The required celsius tempreature is: -17.8

Enter the Farenheit temperature: 1

The required celsius tempreature is: -17.2

Enter the Farenheit temperature: 2

The required celsius tempreature is: -16.7

删除变量的第一个声明'c'。应该可以。