在C中每轮减少一个整数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

我如何每次减少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);
    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);
}