【问题标题】:Copying every nth element from one array to another将第 n 个元素从一个数组复制到另一个数组
【发布时间】:2015-08-16 18:04:26
【问题描述】:

有谁知道将每个第 n 个元素从一个数组复制到另一个数组的方法?例如,我有一个数组 Data[x],并且想要将每第三 (3) 个元素 - Data[0]、Data[3]、Data[6] 等复制到一个新的数组 Data2[j] 中。我尝试使用 for 循环但没有成功。

void StoreData()
{
bufferPointer1 = &BufferA[0];
x=0;
i=0;
j=0;

while (x<NO_SAMPLES-1)
{
    Data[x] = *bufferPointer1;
    bufferPointer1++;
    x++;
    for (j=0; j<127; i++)
        {
        Data2[j] = Data[i+=3];
        j++;
        }
}
}

【问题讨论】:

  • 我正在使用带有 xc16 的 dspic33fj

标签: arrays mplab dspic


【解决方案1】:

为什么不在函数中声明变量?这四个似乎都是在本地使用的,应该在函数之外不可见。

为什么在本节中增加 i 而不是 j,这是错字吗?

   for (j=0; j<127; i++)
        {
        Data2[j] = Data[i+=3];
        j++;
        }

我会这样写:

   for (j=0; j<127; j++)
        {
        Data2[j] = Data[i];
        i+=3;
        }
    i=0;                      // Reset pointer

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    相关资源
    最近更新 更多