这是我当前的代码:
#include <stdio.h>
int index_x[] = {0,0,1,0,1,0,0,0,1,0,0,1,0}; // any number of elements
int len = sizeof index_x / sizeof*index_x;
int main(void) {
int arr[len];
int j = 0;
for (int i = 0; i < len; i++)
if (index_x[i])
arr[j++] = i; // save and advance j only if value is "1"
for (int i = 0; i < j; i++) // only print below j !
printf("%d\n", arr[i]);
}
输出:
2
4
8
11
从这个输出中,我想生成另一个数组,它是这些元素之间的差异。在这种情况下,新数组将是 {2,4,3}。(2-4=2, 8-4=4, 11-8=3)。
我目前正在努力解决两件事:
- 将当前代码生成的数组保存
arr[i]为另一个数组,以便我可以对其进行操作以备将来使用。 - 生成“差异数组”。棘手的部分是元素的数量不会是恒定的,因此我无法指定数组大小。