0

我想用这样的东西制作一个数组:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}

对此:

{6, 5, 4, 3, 2, 1, 0, 13, 12, 11, 10, 9, 8, 7, 20, 19, 18, 17, 16, 15, 14}

但我不知道如何。我认为这种方法可以作为我计划做的代码的一个很好的替代方案。(我正在使用 Dr. Java,所以没有导入文件顺便说一句)

对于一个名为 的整数数组integer[]

    (for j = 0; j < 3; j++) {
            (for k = 0; k = 6; k++) {
                int newj = j+1;
                int array = integer[k*newj];
                integer [k*newj] = integer[6 - k*newj -1];
                integer[6 - k*newj - 1] = array;
            }
     }

但这不起作用。

有什么建议吗?这不是作业的一部分,而是将在一周内进行的考试的一部分,我想确定这一点。

4

1 回答 1

1

您的数组中有 21 个元素。根据您提到的描述,您想将其分为 3 个部分。每个部分有 7 个元素并将它们反转。

对于每个部分,我们可以进行交换数据操作。

  1. 将第 1 个元素与第 7 个元素交换。
  2. 用第 6 个元素锯掉第 2 个元素。
  3. 将第 3 个元素与第 5 个元素交换。……

注意:数据交换的结束条件是 7/2。它是 7 个元素的中间索引。

这里还有一件事是确定每个分割部分的开始索引结束索引

以下代码适用于您的要求。希望这可以帮助你一些。

    for (int j = 0; j <3; j++) {
        for (int k = 0; k <7/2; k++) {
            int newj = j+1;
            int array = integer[7*newj-k-1];
            integer[7*newj-k-1]= integer [7*j+k];
            integer [7*j+k] = array;
        }
    }
于 2013-10-27T00:06:42.483 回答