在循环体中赋值?

问题描述 投票:0回答:1
我正在尝试构建一个数组,其中每个元素都是前一个元素的 2 倍。我尝试使用下面的循环但出现错误

variables 'x' and 'length' used in loop condition not modified in loop body


我在这篇文章中查看了此错误并进行了建议的更改:

循环条件中使用的变量未在循环体中修改但它仍然不起作用。

怎么会呢?是因为 for 循环元素(x 和 y)根本没有保存以便在主体中使用吗?

for (int x = 0; x < length; x+=1) { for (int y = 1; x < length; y*=2) { newArray[x] = y; printf("%i\n", newArray[x]); } }
    
arrays c for-loop debugging
1个回答
0
投票
内部循环是无限的,因为条件中有

x < length

。我假设您可能想使用 
y < length
 但是从您的描述来看,我认为内部循环不正确或不需要。

你可以这样做

newArray[0] = 1; for (int x = 1; x < length; x+=1) { newArray[x] = newArray[x-1]*2; }
    
© www.soinside.com 2019 - 2024. All rights reserved.