我试图计算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);
}
答案 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
仅在循环中递增一次。