我已经引用堆栈溢出大约3个月了,在99%的时间内,我可以确切地找到所需的内容,但是似乎找不到任何能用C解释此错误消息的内容。
我对C很陌生,但是我只是想使用一个for循环从int change的值中减去25,假设该值已经大于25。 我收到的错误消息是
“错误:循环条件中使用的变量'change'未在循环主体[-Werror,-Wfor-loop-analysis]中修改”
哪个让我感到困惑,因为我没有通过指定更改-25来修改循环体中的变量“更改”?
int main(void)
{
float n;
do
{
n = get_float("How much change do I owe you?: ");
}
while (n < 0);
for (int change = n * 100; change >= 25; change - 25)
{
printf("%i", change);
}
}
答案 0 :(得分:6)
(作为of request,这里是my comment作为答案)
您的循环for (int change = n * 100; change >= 25; change - 25)
从不修改变量change
。
您只需从变量change
的值中减去25,返回结果并立即将其丢弃。
所以不是
change - 25
使用
change -= 25
哪个缩写
change = change - 25
请参阅the Wikipedia page about the for
loop,以详细了解语法。
从那里摘录:
for (initialization; condition; increment/decrement)
statement
因此for
循环中的第三部分应该是增量/减量。
答案 1 :(得分:0)
如果要完成的工作是打印出使n == 0所需的硬币数量,请知道您当前正在打印循环的最终产品,剩下的就是最终产品。我知道的唯一原因是因为我在参加CS50课程时犯了同样的错误