将多维阵列甚至元素传输到一个维数阵列

Transfer a multidimensional arrays even elements to a one dimensional array

本文关键字:阵列 一个 传输 元素      更新时间:2023-10-16

我有一个多维数组,即10 x 10 arr[10][10]我想将偶数数字传输到另一个维度even[50]的另一个数组,这是我所做的:

for (int x = 0; x < 10; x++) {
        if (arr[0][x] % 2 == 0) {
            even[x] = arr[0][x];
        }
    }

现在假设我在arr[0][x]上有{0,1,2,3,4,5,6,7,8,9}我现在遇到的问题是,if语句可以使用偶数元素,例如{6}存储在even[6]even[5]上,以及even[]数组上的其他奇数数字在其中没有值,因为它们只有随机存储器编号i i i希望均匀的元素像

一样彼此相邻

even[0]=0, even[1]=2, even[2]=4

是否有更有效的方法可以做到这一点?谢谢

使用2个索引

size_t even_index = 0;
// some looping condition
for (int x = 0; x < 10; x++) {
    // Some filter test
    if (arr[0][x] % 2 == 0) {
        if (even_index >= 50) Oops_Handle_Error();
        even[even_index++] = arr[0][x];
    }
}
printf("even[] elements used:%zun", even_index);