将特定的数组元素组合在一起C

时间:2018-08-14 03:37:17

标签: c arrays

说,你有一个数组,

[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]

是否可以这样输出显示内容:

[0 6 12, 1 7 13, 2 8 14, 3 9 15, 4 10 16]

每个新的数组元素都由该模式中的3个先前的数组元素组成,其中不包括第6个元素。

到目前为止,我所能想到的就是创建一个临时数组,遍历数组元素并复制受尊重的元素,但是我不知道该如何处理。抱歉,我无法提供示例代码,因为整个概念使我感到困惑。

int i,j,adder = 0;
for(i=0;i<5;i++){ //loop over 5 times for new array of size 5
    adder += 1;
    for(j=i+(i*5);j<i+(5*adder);j++){ //changing between elements and not including 6th value
    //stuck here
    }
    printf("%d", arr[i]);
}

1 个答案:

答案 0 :(得分:2)

您有使用嵌套循环的正确想法,但是内部循环每次都需要增加6

printf("[");
for (i = 0; i < 5; i++) {
    printf("[");
    for (j = i; j < 17; j += 6) {
        printf("%d ", arr[j]);
    }
    printf("]%s", (i < 4 ? ", " : ""));
}
printf("]");