我最近一直在回归 C 编程,并从一些简单的练习开始。但是,当我尝试运行我编写的华氏温度到摄氏温度的转换程序时,华氏温度列呈现良好,但摄氏温度列始终计算为零。这是我的代码:
#include <stdio.h>
int main()
{
int step;
int upper;
float farenheit;
float celsius;
step = 20;
upper = 300;
celsius = 0.0;
farenheit = 0.0;
printf("Farenheit \t Celsius\n");
while(farenheit <= upper)
{
celsius = ((farenheit - 32.0) * 5.0) / 9.0;
printf("\n%6f \t %6.1f\n", farenheit, celsius);
farenheit = farenheit + step;
}
return 0;
}
输出结果如下:
Farenheit Celsius
0 -0.000000
20 -0.000000
40 0.000000
60 0.000000
80 0.000000
100 0.000000
120 0.000000
140 0.000000
160 0.000000
180 0.000000
200 0.000000
220 0.000000
240 0.000000
260 0.000000
280 0.000000
300 0.000000
------------------
(program exited with code: 0)
Press return to continue
我看到其他人也遇到过这个问题,他们通过将适当的零附加到本应是 float 的值来解决这个问题。但是,这似乎对我不起作用,我不确定这里的问题是什么。我正在为这段代码使用 Geany Linux 集成开发环境。
如有任何帮助,我们将不胜感激。
最佳答案
看起来集成开发环境编译器有问题。我使用带有 gcc 语法的命令行编译我的源代码,当我运行程序时,与我使用内置编译器所经历的相比,一切都按预期工作。看来我的问题已经解决了。但是,有趣的是IDE编译器存在这样的问题。不过,我要感谢大家对这个问题的投入。
编辑:啊哈!问题其实很简单。浪费大家的时间,我深表歉意。看起来它与有问题的编译器无关,但事实上当我使用 IDE 进行编译时它不会创建可执行文件。为了让我正确运行程序,我必须编译它,然后选择一个选项来构建它。
我看到在 Geany IDE 中,对于以 C# 编程语言编译的文件,编译选项会同时编译一个或多个文件并构建可执行文件。而对于以 C 编程语言编译的文件,Geany 更改了可用的选项以分离编译和构建功能。
关于摄氏度到华氏度的转换总是在摄氏度下显示零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53142374/