2013-10-13 115 views
2

我目前通过K学习C & R的“The C Programming Language”。这是一个练习(1-5),要求我使用for循环将华氏温度转换为摄氏温度,但将华氏温度值从我指定的最大值以降序显示。前面的练习是相同的想法,但按升序排列(我成功完成)。我试图完成降序任务,并且在控制台中没有输出。用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; 
} 
+5

哇,8答案。声名狼借的徘徊者。 – cdoubleplusgood

+1

@cdoubleplusgood;你怎么样? :) – haccks

回答

3

检查for循环

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

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

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; 
2

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

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

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

你想被大家说,如果华氏大于或等于0不少于。

1

如果fahreneit >= 0需要继续迭代。

否则,如果你写fahreneit <= 0,检查将是虚假在第一次迭代步骤,程序将立即退出并不打印任何东西。

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

你的循环confition是不正确的:在2分钟

fahrenheit <= 0