首页 > 解决方案 > 迭代创建三个数组的三个数组的组合

问题描述

给定三个数组:

double unorderedArrayOfThree[3] = {6, 7, 4};

并希望用新数组的第一个和第二个位置的三个可能的数字对填充一个数组,例如:

6,7,4
7,4,6
4,6,7

我很难在 for 循环中计算出序数级数。我如何轻松遍历第一个数组来创建第二个?

int main() {
  double unorderedArrayOfThree[3] = {6, 7, 4};
  double newArray[3][3];

  for (int i = 0; i < 3; i++) {
    //? something clever here
  }
  return 0;
}

标签: c++arraysalgorithm

解决方案


像这样的东西:

int main() {
  double unorderedArray[3] = {6, 7, 4};
  double newArray[3][3];

  for (int i = 0; i < 3; i++) {
    newArray[0][i] = unorderedArray[i];
    newArray[1][i] = unorderedArray[(i + 1) % 3];
    newArray[2][i] = unorderedArray[(i + 2) % 3];
  }
  return 0;
}

这够聪明吗?


推荐阅读