我正在尝试在c中使用特定的i值进行FOR循环,例如i = 2,6,8,12,16,20,22,26,34 ..我只是不知道如何指定增量因为它们不相等。这段代码对我不好。
for (i=2,i<=30,i++) {
}
可能在i中使用指定的值数组,然后运行for循环并引用该数组?
任何帮助?
答案 0 :(得分:6)
您的for
- 循环语法需要修复。
第一个选项是使用自定义功能:
for (i=2; i <= 30; i = foo(i)) { ... }
其中foo
是一个函数,它取当前值i
并返回下一个值。您需要自己提出foo
的正确定义。
另一种方法是将所有这些值放在一个数组中,并将该数组用作索引:
int indices[ MAX_INDICES ] = { 2, 6, ... };
for (size_t j = 0; j < MAX_INDICES; ++j) {
/* instead of using 'j' use indices[ j ] now on */
}
答案 1 :(得分:1)
您要添加的金额似乎并不总是相同。因此,我建议将值放入数组并使用索引循环遍历它。
伪代码:
int vals[10];
// fill the values
vals[0] = 2;
vals[1] = 6;
vals[2] = 8;
...
for(int i = 0; i < 10; ++i)
{
// work
}
答案 2 :(得分:1)
正确,您希望将索引放在数组中:
static const int indices[] = { 2,6,8,12,16,20,22,26,34 };
for (int i = 0; i != sizeof(indices) / sizeof(indices[0]); ++i) {
const int j = indices[i];
...
}
答案 3 :(得分:1)
i的值是否有任何模式?如果没有,并且您需要的可能值的数量足够小,则需要创建一个数组并在整个数组中进行迭代,如:
int myValue[9] = {2,6,8,12,16,20,22,26,34};
int i;
for(i=0; i < 9; i++)
{
printf("myValue[%d] = %d\n", i, myValue[i]);
}
答案 4 :(得分:0)
对于2的步骤,你可以这样做。 for(i = 2,i <= 30,i + = 2){
}
答案 5 :(得分:0)
具体限制是什么?似乎大部分时间都会增加4,但之后会有变化。
鉴于此,似乎最好的方法是将所需的值放入数组并以这种方式使用它们,或者定义一个可以生成这些值然后以这种方式访问它们的函数(而不是通过你的索引)值数组)。
另外,请注意for
- 圈内的部分由;
而不是,