我开始学习C所以我需要一个可以解释以下程序的人,这个程序应该将摄氏温度转换为华氏温度,反之亦然。一步一步。
#include <stdio.h>
#define TF2TC
main() {
double tc, tf, offset, conv;
offset = 32.;
#ifdef TF2TC
conv = 5. / 9.;
printf("Fahrenheit Value= ");
scanf("%lf",&tf);
tc = (tf - offset) * conv;
printf("celsius value= %f\n",tc);
#endif
#ifndef TF2TC
conv = 9. / 5.;
printf("celsius value= ");
scanf("%lf",&tc);
tf = tc * conv + offset;
printf("fahrenheit value= %f\n",tf);
#endif
}
答案 0 :(得分:1)
double tc, tf, offset, conv; // --> declaring 4 doubles
offset = 32.; // --> assigning 32.0 to offset
#ifdef TF2TC // --> if the macro TF2TC was defined do this:
conv = 5. / 9.; // --> assigning 5. / 9. to conv
printf("Fahrenheit Value= "); // --> printing "Fahrenheit Value= "
scanf("%lf",&tf); // --> scanning user input and storing it in tf
tc = (tf - offset) * conv; // --> assigning (tf - offset) * conv to tc
printf("celsius value= %f\n",tc); // --> printing "celsius value= {value of tc}"
#endif
#ifndef TF2TC // --> if the macro TF2TC wasn't defined do this:
conv = 9. / 5.; // --> assigning 5. / 9. to conv
printf("celsius value= "); // --> printing "celsius value= "
scanf("%lf",&tc); // --> scanning user input and storing it in tf
tf = tc * conv + offset; // assigning tc * conv + offset to tf
printf("fahrenheit value= %f\n",tf); // --> printing "fahrenheit value= {value of tf} "
#endif
答案 1 :(得分:0)
这是发布代码的主要概念。
(A)如果定义了TF2TC
宏,则编译代码以将用户输入从华氏温度转换为摄氏温度。
(B)如果未定义TF2TC
宏,则编译代码以将用户输入从Celsius转换为Fahrenheit。
在发布的代码中,TF2TC
宏由#define TF2TC
定义,因此(A)代码被编译,而另一个代码块被忽略。