c - 接收错误:“循环条件中使用的变量未在循环体中修改”
问题描述
我是编码新手,我偶然发现了一个问题。我正在尝试编写一个程序,它从用户那里获取一个浮点数并将其乘以 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 作为条件。
任何帮助将非常感激。
解决方案
这里不需要第二个循环。您想要的是c
在循环之外声明,将其初始化为 0,在循环内递增它,然后在循环完成时打印它。
int c = 0;
for (int q = w; q > 24; q = q - 25) {
c++;
}
printf("%i", c);
推荐阅读
- sql - SQL 尽可能快地用依赖于列类型的默认值替换 NULL
- html - 100% 宽度的固定位置元素超出父容器
- javascript - Laravel - DataTables 不会显示结果:“Ajax 错误”和“500 内部服务器错误”
- sql-server - 如何在 SEDE 上对徽章表进行分页?
- angular - 更新后的值未正确显示到网格中
- django - “如何在 django 中获取已经存在的用户购物车”
- c# - Handling Exception throwed in a MediatR event ran as a hangfire job
- linux - Bash 扩展:运行文件或在终端中运行时的不同结果 // extglob
- angular - Angular 7:ngOnChanges 只触发一次
- python - Pandas Dataframe 中的字典