2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
|
1 | |
Массив: Вывести массив по заданной схеме...25.02.2019, 18:04. Показов 1804. Ответов 19
Метки двумерный массив (Все метки)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
25.02.2019, 18:04 | |
Ответы с готовыми решениями:
19
Заполнить двумерный массив A [6][6] по заданной схеме Заполнить двумерный массив A [6][6] по заданной схеме
|
5666 / 3112 / 1299
Регистрация: 07.02.2019
Сообщений: 7,803
|
|
26.02.2019, 09:15 | 3 |
как я понял нужно преобразовать одномерный массив в двумерный по нарисованному алгоритму и вывести последний
Добавлено через 6 минут ну или наоборот, непонятно ![]()
0
|
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
|
|
26.02.2019, 09:22 | 4 |
Не по теме: zayats80888, автор еще собирается с мыслями и в глубоких раздумьях, решает, что он хотел этим сказать. ![]()
0
|
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
||||||
26.02.2019, 10:08 | 5 | |||||
Вот как-то так:
PS: Думаю, что вывести на экран результирующий одномерный массив array вы сможете сами ![]()
1
|
Параллельный Кот
1904 / 826 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||||||
26.02.2019, 19:18 | 6 | ||||||||||
Дело было вечером - делать было нечего. Предлагаю еще один вариант. Поскольку ТС не уточнил, требуется ли заполнение матрицы или вывод элементов по указанному пути обхода, предусмотрел оба варианта.
Пример с обходом по спирали
Поскольку функция получилась относительно универсальной, можно сделать и другие варианты обхода от края к центру. Например, по спирали.
1
|
756 / 566 / 313
Регистрация: 24.02.2017
Сообщений: 2,005
|
||||||
26.02.2019, 20:28 | 7 | |||||
0
|
2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
|||||||||||
26.02.2019, 22:08 [ТС] | 8 | ||||||||||
valen10,я валенок и тз не указал но вот как должен выглядеть каркас( преподаватель не принимает никакие другие варианты((
повар1, Можешь объяснить что происходит здесь ? ( мне нужно сначала присвоить значения двумерного массива в этом порядке, а потом вывести их)
0
|
756 / 566 / 313
Регистрация: 24.02.2017
Сообщений: 2,005
|
||||||
26.02.2019, 22:49 | 9 | |||||
У нас есть строка в которой указан путь обхода массива. В этой строке например значение 04 означает: 0 - i строка, 4 - j элемент. Эту стоку вводим в поток ввода-вывода s. Из потока выводим с помощью while(s>>n) значения ij в int n (пробел в строке это разделитель значений). Если n/10 то получим индекс i. Если n%10 то получим индекс j.
Добавлено через 8 минут
0
|
2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
||||||
27.02.2019, 17:13 [ТС] | 10 | |||||
повар1, а можешь сделать тот же вывод но для этого кода? Я просто вообще не догоняю что то, а препод просит оформить именно в такой форме((
0
|
756 / 566 / 313
Регистрация: 24.02.2017
Сообщений: 2,005
|
||||||
27.02.2019, 18:48 | 11 | |||||
0
|
2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
|
27.02.2019, 19:04 [ТС] | 12 |
повар1, есть еще один момент, двумерный массив динамический. там может быть 1 2 3 4 5 6 или более строк и столбцов. А тут только для статического
0
|
Параллельный Кот
1904 / 826 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||
27.02.2019, 21:12 | 13 | |||||
![]() Решение
Только это заметили? Логично же, что в строке жестко прописан порядок обхода только для массива 5x5. Странно, что из двух предложенных вариантов вами был выбран наименее подходящий.
Не знаю, что там еще запрещает ваш преподаватель, разрешены ли функции и структуры. Максимально упростил. Если еще и enum под запретом, замените его на обычные константы со значениями от 0 до 7 в порядке перечисления.
1
|
2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
||||||||||||||||
27.02.2019, 22:42 [ТС] | 14 | |||||||||||||||
valen10, я валенок еще тот и знаю что прошу слишком много, но все же если у вас есть свободное время объясните пожалуйста : как значения из step_list присваиваются элементам enum, что это значит
Добавлено через 13 минут valen10, и
0
|
Параллельный Кот
1904 / 826 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|
28.02.2019, 00:31 | 15 |
Где? В enum, грубо говоря, хранятся именованные константы. Здесь они используются для доступа к одному из элементов массива без использования магических чисел.
Проверка правильности границ. Номер верхней строки не может быть больше номера нижней. Номер левого столбца не может быть больше номера правого. Возможно, это и не обязательно проверять (подумать надо). По сути, если границы будут не правильными, тогда и текущая позиция не будет в них попадать ни при каком условии. Можно и на while (true) заменить. Наверное.Отвечу вопросом на вопрос: как соотносятся между собой количество элементов массива и максимальный индекс этого же массива? Устанавливаются границы (top, left, bottom, right), фиксируется текущая позиция (pos_i, pos_j). И дальше в цикле изменяется текущая позиция, пока это возможно. Каждая строка массива step_list содержит 8 чисел: 1е и 2е - это изменение текущей позиции. Изменение позиции выполняется до тех пор, пока она не выскочит за установленные границы. После этого используются 3е и 4е числа - восстановление правильной позиции. Это два действия: шаг назад и шаг в правильном направлении. И после этого используются последние четыре числа - изменение границ. После прохода вдоль одной из границ её необходимо сдвинуть в направлении к центру.
1
|
2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
||||||
28.02.2019, 14:52 [ТС] | 16 | |||||
valen10, а тут
0
|
Параллельный Кот
1904 / 826 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|
28.02.2019, 23:53 | 17 |
Здесь просто по порядку просматриваются все строки массива в цикле range-based for. Спецификатор auto позволяет не писать тип данных вручную (здесь это должен быть int[8]).
0
|
2 / 2 / 0
Регистрация: 01.10.2018
Сообщений: 210
|
|
01.03.2019, 18:15 [ТС] | 18 |
valen10, при обходе матрицы больше 5 возникает проблемка, после обхода правой, нижней и левой стенки дальше массив должен закручиваться змейкой в центр. При обходе массива больше 5 он на 7 обходе ломает эту змейку и идет иначе? Как можно это поправить?
0
|
Параллельный Кот
1904 / 826 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|
01.03.2019, 18:38 | 19 |
DrKappa, вот это поворот! Разве обходы не должны чередоваться? По вашему рисунку это не понятно. Сделайте тогда рисунок для 7 и 8, например, чтобы уточнить этот момент.
0
|
5666 / 3112 / 1299
Регистрация: 07.02.2019
Сообщений: 7,803
|
|
01.03.2019, 18:48 | 20 |
0
|
01.03.2019, 18:48 | |
Помогаю со студенческими работами здесь
20
Сортировка: Как сделать так, чтобы двумерный массив выводился по заданной схеме...
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |