Объединение двух двумерных массивов в порядке следования осей

Хотите объединить два разных 2D-массива с разными размерами строк в один длинный массив:

 int 2dArray1[][] = {
   {1, 2, 3},
   {4, 5, 6}};
 int 2dArray2[][] = {
   {10, 20},
   {30, 40}};
 int 1dLongArray[10];

Именно здесь мне нужна помощь, чтобы упорядочить значения 1dLongarray следующим образом:

1, 2, 3, 10, 20, 4, 5, 6, 30, 40

Как бы я этого добился? Заранее благодарю.

, 👍1

Обсуждение

шаг за шагом, как вы сделали это на бумаге? ... программа будет делать это точно так же, @jsotola

Единственный способ, который я мог придумать, чтобы заставить это работать на бумаге, - это использовать memcpy для одномерных массивов, а затем каким-то образом создать из него двумерный массив. Я не совсем уверен, как это сделать, и я довольно новичок в программировании, и у меня нет наставника или инструктора, который мог бы мне помочь. Я всегда стараюсь сделать все возможное, чтобы самому найти ответ, прежде чем задавать вопросы в Интернете, но этот вопрос поставил меня в тупик., @Hitachii

когда я говорю "на бумаге", я имею в виду, как бы вы это сделали, если бы ничего не знали о программировании... какой последовательности шагов вы бы последовали? ... я также не имею в виду запишите первые три цифры... я имею в виду детские шаги, например: "посмотрите на array1, row1, position1. скопируйте содержимое в первую пустую позицию в пункте назначения`, @jsotola


1 ответ


Лучший ответ:

0

Рассмотрите возможность использования циклов длиной, соответствующей желаемому количеству транзакций. Например, используя этот псевдокод, создайте скетч, который следует этому шаблону:

initialize i to zero
loop 2 times for each row using the variable x
  loop 3 times for each element in first array using the variable y
    long array [i] = first array[x][y] 
    increment i
  loop 2 times for each element in a second array using the variable z
    long array [i] = second array[x][z]
    increment i
,

Будучи совершенно новым аккаунтом, я пока не могу поддержать ваш комментарий, поэтому я оставляю этот комментарий, чтобы поблагодарить вас!, @Hitachii

Если вы можете вывести рабочее решение из этого ответа, вы должны быть в состоянии принять этот ответ как решение вашего вопроса., @st2000

Спасибо @Hitachii за правильный ответ. Если ответ сработает отлично! Если нет, пожалуйста, оставьте комментарий, и я отредактирую ответ, чтобы улучшить его., @st2000

Конечно. Если бы кто-нибудь вставил руководство по формуле, которую вы опубликовали, в проблему, которую я опубликовал, для "длинного массива [i] = первого массива [y] [x]" и "длинного массива [i] = второго массива [z] [x], им пришлось бы переключиться размещение x и z / y в их соответствующей строке должно выглядеть как "длинный массив [i] = первый массив [x] [y]", чтобы следовать исходной последовательности массива. Должен ли я публиковать свой рабочий код? Это показывает, насколько я зеленый для этой платформы., @Hitachii

Вы правы. 1-й аргумент - это строка, а второй - столбец. Я изменю свой ответ., @st2000