我目前正在通过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;
}
答案 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;