说,你有一个数组,
[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]);
}
答案 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("]");