Объединение двух двумерных массивов в порядке следования осей
Хотите объединить два разных 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
Как бы я этого добился? Заранее благодарю.
@Hitachii, 👍1
Обсуждение1 ответ
Лучший ответ:
Рассмотрите возможность использования циклов длиной, соответствующей желаемому количеству транзакций. Например, используя этот псевдокод, создайте скетч, который следует этому шаблону:
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
- Возможно ли иметь массив массивов int?
- Замена нескольких выводов pinMode() и digitalWrite() на массив
- Ошибка: invalid application of 'sizeof' to incomplete type 'int []' при попытке вычислить размер массива в библиотеке
- Инициализация массива структур
- Невозможно создать массив типа const char*
- Работает ли конструкция int array[100] = {0} на Arduino?
- Массив динамического размера в качестве члена класса
- Длина константного массива uint8_t*
шаг за шагом, как вы сделали это на бумаге? ... программа будет делать это точно так же, @jsotola
Единственный способ, который я мог придумать, чтобы заставить это работать на бумаге, - это использовать memcpy для одномерных массивов, а затем каким-то образом создать из него двумерный массив. Я не совсем уверен, как это сделать, и я довольно новичок в программировании, и у меня нет наставника или инструктора, который мог бы мне помочь. Я всегда стараюсь сделать все возможное, чтобы самому найти ответ, прежде чем задавать вопросы в Интернете, но этот вопрос поставил меня в тупик., @Hitachii
когда я говорю "на бумаге", я имею в виду, как бы вы это сделали, если бы ничего не знали о программировании... какой последовательности шагов вы бы последовали? ... я также не имею в виду
запишите первые три цифры
... я имею в виду детские шаги, например: "посмотрите на array1, row1, position1. скопируйте содержимое в первую пустую позицию в пункте назначения`, @jsotola