用For循环计数

时间:2013-10-13 18:19:07

标签: c

我目前正在通过K& R的“C编程语言”学习C语言。这是一项练习(1-5),它要求我使用for循环将华氏温度转换为摄氏温度,但华氏温度值将从我指定的最大值开始按降序显示。之前的练习是相同的想法,但按升序排列(我成功完成)。我试图完成降序任务,我在控制台中没有得到任何输出。

我不确定为什么这不起作用(我希望它的尴尬不那么明显!)

#include <stdio.h>

int main() 
{
    int fahrenheit;

    for(fahrenheit = 250; fahrenheit <= 0; fahrenheit -= 25)
    {
        printf("%3d degrees fahrenheit is %3.3f degrees celcius\n", fahrenheit, (5.0 / 9.0) * (fahrenheit - 32));
    }

    return 0;
}

6 个答案:

答案 0 :(得分:3)

检查for循环

for(fahrenheit = 250; fahrenheit >= 0; fahrenheit -= 25) // change to this

fahrenheit的初始值为250,您想要计算相应的摄氏温度,直到它保持大于零。因此,测试条件应为fahrenheit >= 0

答案 1 :(得分:2)

for循环中的测试条件错误。进入循环变化

for(fahrenheit = 250; fahrenheit <= 0; fahrenheit -= 25)

for(fahrenheit = 250; fahrenheit >= 0; fahrenheit -= 25)

答案 2 :(得分:2)

您的循环条件永远不会成立:

fahrenheit <= 0

答案 3 :(得分:1)

你想说的是华氏度是否大于或等于0不小于。

答案 4 :(得分:1)

如果fahreneit >= 0,您希望继续迭代。

否则,如果您编写fahreneit <= 0,则在第一次迭代步骤中检查将为 False ,程序将立即退出并且不打印任何内容。

for(fahrenheit = 250; fahrenheit >= 0; fahrenheit -= 25)

答案 5 :(得分:0)

int fahrenheit;

for(fahrenheit = 250; fahrenheit >= 0; fahrenheit -= 25)
    printf("%3d degrees fahrenheit is %3.3f degrees celcius\n", fahrenheit, (5.0 / 9.0) * (fahrenheit - 32));

return 0;