B4062 [GESP202412 一级] 温度转换

· · 题解

欢迎报名洛谷网校,期待和大家一起进步!

:::align{center} :::

本题考查分支结构和浮点数的输入输出。

我们读入开尔文温度 k,根据题目中的式子:

C=K-273.15\\ F=C\times 1.8+32

可以写出这段计算式子,注意,在本题中变量类型必须使用 double 而非 float,否则会因浮点数误差而计算错误:

double c = k - 273.15; //计算摄氏温度
double f = c * 1.8 + 32; //计算华氏温度

接着,需要判断华氏温度 f 是否大于 212,可以使用 if 语句完成判断。本题的另一个核心难点在于输出浮点数,可以使用 printf 函数输出,占位符使用 %.2lf 即可输出一个保留到小数点后 2 位的 double 类型浮点数。

if (f > 212) //题目要求华氏温度 f 高于 212
    cout << "Temperature is too high!";
else
    printf("%.2lf %.2lf", c, f); //输出两个保留到小数点后 2 位的浮点数 c 和 f,且用一个空格隔开。

如果你觉得题目不对,请你仔细阅读题目,好好注意题目要你判断的是什么。