0

几周前我开始学习计算机编程,我们刚刚开始使用 Objective-C!我们需要将摄氏度转换为华氏度和开尔文。为此,我必须输入摄氏度。然后我用这个等式得到华氏温度:* 9 / 5 + 32。为了得到开尔文,我加上 273.15。

#include <stdio.h>
int main(void)
{
    float Celsius;
    float Farenheight = Celsius * 9 / 5 + 32;
    float Kelvin = Celsius + 273.15;

    printf("How many degrees in Celsius?");
    scanf("%s %s %d", Celsius, Farenheight, Kelvin);
    printf("C: %s, F: %s, K: %d", Celsius, Farenheight, Kelvin);

}

这是我迄今为止提出的(第二次修订),但我真的不确定如何做到这一点。如果有人可以帮助我,那就太好了!

4

2 回答 2

3

有趣的是,今天早些时候在另一个背景下出现了温度转换。

将该代码适应您的大纲,您需要在celsius将任何内容转换为kelvinor之前读取值fahrenheit(而您的代码转换未初始化的值,这不是一个好主意):

double celsius;
printf("What is the temperature in degrees Celsius? ");
if (scanf("%lf", &celsius) == 1)
{
    double kelvin = celsius + 273.15;
    double fahrenheit = (celsius + 40.0) * (9.0 / 5.0) - 40.0;
    printf("%7.2f °C = %7.2f K = %7.2f °F\n", celsius, kelvin, fahrenheit);
}

请注意,在使用结果之前会检查输入的有效性。

转换公式比您引用的通常公式更简单,并且对于将°F 转换为°C 或反之亦然是对称的,不同之处在于转换因子 (9.0 / 5.0) 与 (5.0 / 9.0)。它依赖于 -40°C = -40°F。试试看:

  • C =  0°C; (C+40) = 40; (C+40)*9 = 360; (C+40)*9/5 = 72; (C+40)*9/5-40 = 32°F.
  • F = 32°F; (F+40) = 72; (F+40)*5 = 360; (F+40)*5/9 = 40; (F+40)*5/9-40 =  0°C.

绝对零是 -273.15°C、0K、-459.67°F。

于 2013-09-24T05:15:45.557 回答
0

使用此代码片段从标准输入读取输入:

#include <stdio.h>
int main (int argc, char *argv[]) {
    int celsius;
    printf("What is the temperature in celsius? ");
    scanf("%d", &celsius);
    printf("celsius degree = %d\n", celsius);
}
于 2013-09-24T03:58:50.277 回答