在C中每轮减少一个整数10%
我如何每次减少10%的整数(用于延迟时间)? 这是我目前的想法,我想改进一下在C中每轮减少一个整数10%,c,loops,C,Loops,我如何每次减少10%的整数(用于延迟时间)? 这是我目前的想法,我想改进一下 void lights() { light1(on); delay(50000); light1(off); delay(50000); light2(on); delay(50000); light2(off); delay(50000); light1(on); delay(40000); light1(off); d
void lights()
{
light1(on);
delay(50000);
light1(off);
delay(50000);
light2(on);
delay(50000);
light2(off);
delay(50000);
light1(on);
delay(40000);
light1(off);
delay(40000);
light2(on);
delay(40000);
light2(off);
delay(40000);
delay(30000);
delay(20000);
delay(10000);
delay(9000);
delay(8000);
all the way to like delay(100);
}
在每次灯光打开/关闭循环后,可将延迟减少10%。
我不知道该怎么做,我试过谷歌搜索,我想我在python中也看到过类似的东西,但我对它的理解不够,无法转换成C
我未完成的想法:
void lights()
{
int delayTime = 0;
for (int i = 0; /* decrease delayTime by 10% */ )
{
light1(on);
delay(delayTime);
light1(off);
delay(delayTime);
light2(on);
delay(delayTime);
light2(off);
delay(delayTime);
if (delayTime <= 100)
{
// Done end of method/function
}
}
}
void lights()
{
int delayTime=0;
对于(int i=0;/*将延迟时间减少10%*/)
{
照明1(on);
延迟(延迟时间);
照明1(关闭);
延迟(延迟时间);
灯光2(on);
延迟(延迟时间);
照明2(关闭);
延迟(延迟时间);
if(delayTimefor
之后的三条语句是初始化、继续循环的测试条件和在每个循环上重复的语句。我们希望将delayTime
初始化为50000。如果delayTime
大于或等于100,我们希望继续。我们希望每个循环将其乘以0.9(最好不做任何浮点运算)。因此:
delayTime*9/10
或delayTime-delayTime/10
似乎你需要做更多的教程…是的,下面的答案很完美,我很高兴它是如何解释的。现在我要去做一些C数学教程x.x谢谢大家!这不仅仅是一个小学数学问题吗?
for (delayTime = 50000;
delayTime >= 100;
delayTime -= delayTime / 10)
{
light1(on);
delay(delayTime);
light1(off);
delay(delayTime);
light2(on);
delay(delayTime);
light2(off);
delay(delayTime);
}