我无法理解这个程序出了什么问题

时间:2017-08-28 11:14:21

标签: c for-loop infinite-loop

#include<math.h>
#include<stdio.h>
int main(void)
{
    int i = 0;

    int f = 10000;

    int div1 = (powl(10,i));

    int temp1 =  f/div1;

    for(i = 2; temp1 > 1; i++)
    {
        printf("%i\n",temp1);
    }
}

据我所知,div1的值应该是100,1000,10000 ......在I中有相应的增量。然后temp1应该是100,10,然后循环停止(?)。但我得到了10000 10000 10000 10000的无限循环......

有人可以解释我做错了什么吗?

2 个答案:

答案 0 :(得分:2)

for循环检查temp1,但temp1未在循环体中修改。尝试将所需的修改放在循环体内或作为for循环中的最后一个表达式;变量i可能根本不需要。

答案 1 :(得分:1)

您的for声明应该是这样的。您错过了在for循环

中调用那些声明的内容
    for(i = 2; temp1 > 1; i++)
    {
        div1 = (powl(10,i));

        temp1 =  f/div1;
        printf("%i\n",temp1);

    }