首页 > 解决方案 > 接收错误:“循环条件中使用的变量未在循环体中修改”

问题描述

我是编码新手,我偶然发现了一个问题。我正在尝试编写一个程序,它从用户那里获取一个浮点数并将其乘以 100。然后我想从这个数字中减去 25 尽可能多次(直到它达到某个数字 < 25,此时我想要它停止)。我希望有一个计数器,每次减去 25 时递增 1,也就是说,我想记录从原始数字中减去 25 的次数,然后我想打印结果。

这是我对程序进行编码的尝试:

int main(void)
{
    float input = get_float("%s", "Input: ");
    float w = input * 100;
    {
        for (int q = w; q > 24; q = q - 25)
        for (int c = 0; q > 24; c++)
        printf("%i", c);
    }
}

我收到的错误在 for(int c = 0; q > 24; c++)部分,给出的错误是variable 'q' used in loop condition not modified in loop body.

似乎我在第二个循环的条件中使用 q 导致了问题,但我希望第二个循环运行直到 q 达到 <24 并且我不知道如何不简单地将 q > 24 作为条件。

任何帮助将非常感激。

标签: cfor-loop

解决方案


这里不需要第二个循环。您想要的是c在循环之外声明,将其初始化为 0,在循环内递增它,然后在循环完成时打印它。

int c = 0;
for (int q = w; q > 24; q = q - 25) {
    c++;
}
printf("%i", c);

推荐阅读