C中do while循环中的计数器
我试图记录do while循环中的操作重复了多少次,但计数器每次只显示1。谁能告诉我我的错误在哪里?我在这里提供了代码C中do while循环中的计数器,c,loops,counter,do-while,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 >
#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);
}
#包括
#包括
内部主(空)
{
双i=84;
int计数器=0;
做{
计数器++;
i=fmod(i,25.0);
}
而(i>25);
printf(“计数器:%i\n%lf\n”,计数器,i);
}
fmod
是浮点模
它不能返回高于25.0
的值,因为您已将25.0
作为模值传递
这就是为什么while(i>25)
在第一次迭代时为false
i = fmod(i, 25.0);
这将获取当前值i
,并找到其除以25的剩余部分。随后,剩余部分被重新分配到i
double i = 84;
这将
i
的初始值设置为84。如果我们做84%25
,我们得到9.0
。由于9.0<25.0
,循环将在第一次操作后终止。因此,计数器在循环中只增加一次。您还期望什么<在第一次迭代中,代码> fMOD< /C>将使 I/COD>小于<代码> 84代码/Cube。请不要标记C++和C,它们是不同的语言。接下来,使用调试器,逐行运行代码,并观察变量如何变化。这会让你对那里发生的事情有准确的了解。