C ++将大型数组中的最新值存储在单独的数组中

时间:2014-03-13 01:44:30

标签: c++ arrays for-loop

我需要一种方法将大型数组的最新3个值存储到一个单独的数组中,但是对于我来说,生活中的方法可以找出如何对其进行编码。

这方面的事情是:

int w[3] = {0, 0, 0};
int x[12] = {0, 2, 4, 6, 4, 2, 0, 2, 4, 6, 4, 2};

w[0] = x[i];
w[1] = x[i-1];
w[2] = x[i-2];

所以,如果i = 2,那么:

w[0] = x[2]   = 4
w[1] = x[2-1] = 2
w[2] = x[2-2] = 0

重点是在这样的代码中使用它:

for (i=0; i<200; i++){

    //store x[i], x[i-1] and x[i-2] into 'w' for every value 'i'

    //compensate for undefined 'x'-values (such as x[0-1] and x[0-2] )
    //by writing '0' to corresponding 'w'
}

3 个答案:

答案 0 :(得分:0)

w[0] = 0;
w[1] = 0;
w[2] = 0;
w[0] = x[i];
if (i>=1)
{
   w[1] = x[i-1] ;
}
if ( i>= 2)
{
   w[2] = x[i-2];
}

答案 1 :(得分:0)

假设您知道大型数组的大小为200 -

    s = 0;
    for (l = 200 ; l > 197 ; l--) {
        x[s] = w[l];
        s++;
    }

答案 2 :(得分:0)

根据以下更新:

w[2] = w[1];
w[1] = w[0];
w[0] = x[i];