我需要了解这个C代码

时间:2015-10-15 14:48:53

标签: c

我开始学习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
}

2 个答案:

答案 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)代码被编译,而另一个代码块被忽略。