C语言编程问题

C语言编程问题
题目是:

编写一个程序,该程序要求用户输入一个华氏温度。程序以double类型读入温度值,并将它作为一个参数传递给用户提供的函数Temperatures()。该函数将计算相应的摄氏温度和绝对温度,并以小数点右边有两位数字的精度显示这三种温度。它应该用每个值所代表的温度刻度来标识这3个值。下面是将华氏温度转换成摄氏温度的方程:

通常用在科学上的绝对温度的刻度是0代表绝对零,是可能温度的下界。下面是将摄氏温度转换为绝对温度的方程:
Kelvin=Celsius+273.16
Temperatures()函数使用const来创建代表该转换里的3个常量的符号。main()函数将使用一个循环来允许用户重复地输入温度,当用户输入q或其他非数字值时,循环结束。

这题我基本会,但是有个地方不明白,下面是我的程序:
#include
void Temperatures(double);
int main()
{
double w;
printf("Enter the temperature in FC: ");
while(scanf("%lf",&w)==1) //这个地方
{
Temperatures(w);
printf("Enter the temperature in FC: ");
}
return 0;
}
void Temperatures(double n)
{
const double cc1=1.8;
const double cc2=32.0;
const double kc=273.16;
double c,k;
c=cc1*n+cc2;
k=n+kc;
printf("Temperature in FC: %.2lf\n",n); //这个地方
printf("Temperature in CC: %.2lf\n",c);
printf("Temperature in KC: %.2lf\n",k);
}
问题:上面程序我标注的两个地方,为什么要用 lf 输入和输出?当我用 f 来输入输出时结果就不对,为什么呢?
因为你定态态义的是double类型,double类型输入的话就是帆此源lf,扒野如果是f的话应该是float型的。

下面同理
因为 f 是 float , lf 是 double
← 上一篇: 下一篇: →