摄氏度到华氏度的转换总是在摄氏度下显示零

标签 c algorithm

我最近一直在回归 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/

相关文章:

c - X509_STORE_add_lookup() 中的段错误

python - 讨论 Leetcode 问题最小难度的工作计划的更好方法

database - 更新排序列表

c - 给定递归程序的空间复杂度

algorithm - 在具有变化值的两个数组之间进行插值

C 动态分配速度问题

c - 较小的股息和较大的除数的模数如何工作?

c - copy_from/to_user 何时返回非零值

algorithm - 寻求近似算法以找到区域中最大的清晰圆圈

c - 识别位图中设置的位并将其打印在字符串中