几周前我开始上学计算机编程,我们刚开始使用Objective-C!我们需要将Celsius转换为Fahrenheit和Kelvin。要做到这一点,我必须输入摄氏量。然后我用这个等式得到华氏温度:* 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);
}
这是我到目前为止提出的(第二次修订),但我真的不确定如何做到这一点。如果有人能帮助我那会很棒!
答案 0 :(得分:3)
有趣的是,温度转换今天早些时候出现在another context。
将该代码调整为大纲,您需要在将任何内容转换为celsius
或kelvin
之前阅读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。
答案 1 :(得分:0)
使用此代码段从stdin读取输入:
#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);
}