#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-мерных массива, а затем создавать их комбинации. Пожалуйста, уточните более четко.