计数器在C中的do while循环中

时间:2017-03-09 12:59:55

标签: c loops counter do-while

我试图计算do-while循环内部的操作重复次数,但计数器每次只显示1次。谁能告诉我我的错误在哪里?我在这里提供了代码。

#include <stdio.h>
#include <math.h>

int main(void)
{
    double i = 84;
    int counter = 0;
    do {
        counter++;
        i = fmod(i, 25.0);

        }
    while(i > 25);
    printf("Counter: %i\n %lf\n", counter, i);
}

2 个答案:

答案 0 :(得分:2)

fmod是浮点模数。

由于您已将25.0作为模数值传递,因此无法返回高于25.0的内容。

这就是while(i>25)在第一次迭代时为假的原因。

答案 1 :(得分:0)

i = fmod(i, 25.0);

这将取i的当前值,并将其除法的余数除以25.然后,将余数重新分配给i

double i = 84;

这会将i的初始值设置为84.如果我们84 % 25,我们会得到9.0。从9.0 < 25.0开始,循环将在第一次操作后终止。因此,counter仅在循环中递增一次。