Как я могу добавить числа в свой массив в этом коде?

#c #arrays

Вопрос:

Я хотел бы составить 3-мерный список, содержащий все числа. Пример : N=2 Мой массив должен содержать все варианты :

 000 001 002 003 010 ... 210 211 212 213  

Как я могу добавить числа в свой массив?

 #include lt;iostreamgt; using namespace std;  int main () { int N; cin gt;gt; N;  int array[N][2][4]={0};   for (int i=0; ilt;N;   i)  {  for (int j=0; jlt;2;   j)  {  for (int k=0; klt;4 ;   k)  {   cout lt;lt; array [i][j][k]lt;lt; endl;  }  }  } return 0; }  

Комментарии:

1. Добавьте номер, по которому у вас есть cout. Вы знаете i , j и k поэтому вы можете сгенерировать свой номер из этого. Если вы хотите только распечатать, вам не нужен массив a для этого.

2. Массивы переменной длины недоступны в стандарте C . Используйте std::вектор.

3. Если вам нужен только вывод, удалите массив из кода, оставьте std::cout lt;lt; i lt;lt; j lt;lt; k lt;

4. Мне нужен набор для упражнений.

5. Я просто не знаю, как я могу добавить, вот почему я пишу вопрос.

Ответ №1:

Хм, мне трудно понять твой вопрос. Вы просто хотите динамически распределять память? Затем вы можете использовать это new заявление.

Как в следующем примере:

 #include lt;iostreamgt; #include lt;iomanipgt;  constexpr unsigned int DimensionZ = 4; constexpr unsigned int DimensionY = 2;  using YZArray = int[DimensionY][DimensionZ];  int main() {   unsigned int dimensionX{};  if ((std::cin gt;gt; dimensionX) and (dimensionX gt; 0)) {     YZArray* xyzArray = new YZArray[dimensionX]{};   for (unsigned int x = 0; x lt; dimensionX;   x)  for (unsigned int y = 0; y lt; DimensionY;   y)  for (unsigned int z = 0; z lt; DimensionZ;   z)  xyzArray[x][y][z] = 100 * x   10 * y   z;   for (unsigned int x = 0; x lt; dimensionX;   x)  for (unsigned int y = 0; y lt; DimensionY;   y)  for (unsigned int z = 0; z lt; DimensionZ;   z)  std::cout lt;lt; std::right lt;lt; std::setfill('0') lt;lt; std::setw(3) lt;lt; xyzArray[x][y][z] lt;lt; 'n';   delete[] xyzArray;  } }  

Пожалуйста, введите 3 для приведенного выше примера, затем вы получите свою последовательность.


Но, поскольку ответ так прост, я думаю, что это неправильно. Я предполагаю, что вы хотите иметь 3 параллельных 1-мерных массива, а затем создавать их комбинации. Пожалуйста, уточните более четко.