在C

时间:2017-05-24 02:44:49

标签: c

我需要这两段代码的帮助。除了一个改变之外,它们都是相同的。
我在第一种情况下使用while (celsius <= upper),在第二种情况下使用while (lower <= upper)
案例1工作正常,但案例2没有按预期工作,即:循环永远不会结束。

案例1

#include <stdio.h>

//program to print celsius to fahrenheit table

int main (void)
{
    float celsius, fahr;
    int lower, upper, step;

    celsius = lower = 0;
    upper = 100;

    while (celsius <= upper)
    {
        fahr = celsius * (9.0/5.0) + 32.0;
        printf("%5.3f\t=\t%5.3f\n", celsius, fahr);
        celsius = celsius + 1;
    }
}

这很好用。

案例2

#include <stdio.h>

//program to print celsius to fahrenheit table

int main (void)
{
    float celsius, fahr;
    int lower, upper, step;

    celsius = lower = 0;
    upper = 100;

    while (lower <= upper)
    {
        fahr = celsius * (9.0/5.0) + 32.0;
        printf("%5.3f\t=\t%5.3f\n", celsius, fahr);
        celsius = celsius + 1;
    }
}

没有工作。


celsius = lower = 0;
在这两个案例中,摄氏度为&#39;并且&#39;降低&#39;两者都被赋值为0,并且两者也被分配为彼此相等,所以为什么当“摄氏度”时,程序运行相同。并且&#39;降低&#39;互换了吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

在第二个示例中,您将lower设置为0并且永远不会更改它。因此,比较lower <= upper的循环将永远运行。