在for循环中向数组添加元素

Joh*_*Doe 2 c for-loop

我想通过遍历一个for循环来填充数组。

假设我有:

int8 myArray[30] = {0};  // Declaring and initializing an array which contains maximum 30 elements  
Run Code Online (Sandbox Code Playgroud)

在for循环中向数组添加元素:

for (i = 0; i<5; i++)
{
    myArray[0+(i*5)] = getNumberfromFunction1();
    myArray[1+(i*5)] = getNumberfromFunction2();
    myArray[2+(i*5)] = getNumberfromFunction3();
    myArray[3+(i*5)] = getNumberfromFunction4();
    myArray[4+(i*5)] = getNumberfromFunction5();
    myArray[5+(i*5)] = getNumberfromFunction6();
}
Run Code Online (Sandbox Code Playgroud)

循环的每个元素应按以下方式填充:

myArray [0] = getNumberfromFunction1();

myArray [1] = getNumberFromFunction2();

...

...

myArray [5] = getNumberFromFunction6();

myArray [6] = getNumberFromFunction1();

....

....

i = 0的第一圈,索引正确:

myArray[0] = ..
myArray[1] = ..
..
..
myArray[5] = ..
Run Code Online (Sandbox Code Playgroud)

当i = 1时,问题开始

比起myArray [6],我将拥有myArray [5]。

foor循环中的第一个索引将始终被foor循环的最后一个索引覆盖。

有什么建议如何处理吗?

Adr*_*ica 5

for循环的每次运行中,您都将六个值添加到数组中!因此,在随后的每次运行中,您都应将“偏移”计数增加i * 6(而不是i * 5):

for (i = 0; i<5; i++)
{
    myArray[0+(i*6)] = getNumberfromFunction1();
    myArray[1+(i*6)] = getNumberfromFunction2();
    myArray[2+(i*6)] = getNumberfromFunction3();
    myArray[3+(i*6)] = getNumberfromFunction4();
    myArray[4+(i*6)] = getNumberfromFunction5();
    myArray[5+(i*6)] = getNumberfromFunction6();
}
Run Code Online (Sandbox Code Playgroud)

尝试这个。