2 / 2 / 1
Регистрация: 31.12.2012
Сообщений: 31
|
|
1 | |
Массив произвольной размерности и работа с ним20.03.2013, 11:05. Показов 4556. Ответов 35
Метки нет (Все метки)
Доброго времени суток. Появилась интересная задача: создать функцию для создания массива, размерность которого укажут в ходе программы(то есть не a[n] и n укажут-а а[q1][q2][q3][q4]..., и q1,q2... укажут, как и количество этих q, уже в процессе выполнения программы) и поменять местами первый с последним, второй с предпоследним и так далее элементы. Вопрос в следующем: как, собственно, создать такой массив, как сделать необходимое (изначально неизвестное) количество вложенных циклов для затрагивания всех элементов массива? Если вариантов несколько-то лучше самый простой и быстродейственный
З.Ы. Для количества вложенных циков-на ум приходит эллипсис, хотя с ним и гемор. А вот идей по созданию массива полный 0. З.З.Ы. Создать строку вместо массива не предлагать-индусский код не для меня.
0
|
20.03.2013, 11:05 | |
Ответы с готовыми решениями:
35
Работа с матрицами произвольной размерности. Создать функцию, которая для произвольной матрицы вычисляет Работа с матрицами произвольной размерности. Создать функцию, которая для произвольной матрицы вычисляет: Работа с матрицами произвольной размерности. Создать функцию, которая для произвольной матрицы вычисляет работа с матрицами произвольной размерности |
2 / 2 / 1
Регистрация: 31.12.2012
Сообщений: 31
|
|
20.03.2013, 14:53 [ТС] | 21 |
0
|
Vourhey
|
20.03.2013, 15:00
#22
|
Не по теме: На меня не смотри. Я вообще не понял, че те надо, поэтому предложений нет и не будет.
0
|
20.03.2013, 15:02 | 23 | |||||
Я имел ввиду нечто следующее
1
|
2 / 2 / 1
Регистрация: 31.12.2012
Сообщений: 31
|
|
20.03.2013, 15:51 [ТС] | 24 |
хитро...
а преобразование прокатит? ведь у нас получается в итоге(с глубиной 5) шестикратный * и тут вроде как нет создания элементов на самой низкой глубине, вернее они создаються как массив из 10 *чаров тоже. но это уже мелочи
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
20.03.2013, 16:46 | 25 |
0
|
2 / 2 / 1
Регистрация: 31.12.2012
Сообщений: 31
|
|
20.03.2013, 17:27 [ТС] | 28 |
Kastaneda, не прокнуло преобразование типа. а жаль
Хм. Можно, в принципе, сделать struct'ы ctruct'ов... Но это уже не торт.
0
|
20.03.2013, 17:45 | 29 | ||||||||||||||||||||
Всмысле? Вот рабочий пример
Добавлено через 4 минуты как вариант - меняем size на 4 и вывод хардкодим вот так
Кликните здесь для просмотра всего текста
2
|
20.03.2013, 18:10 | 30 |
Это все равно не рантайм вариант, количество звездочек не удастся скрыть, и в рантайме создатаь удастся лишь массив такого размера, которые был запланирован изначально.
Более простой вариант на C++11: http://liveworkspace.org/code/MrwgF
0
|
20.03.2013, 18:14 | 31 |
в моем примере size можно смело вводить с клавиатуры (для создания массива, вывод конечно же сломается).
Если вывод массива сделать в аналогичной рекурсии, то кол-во звездочек не важно. Все это дело можно преобразовать в полноценный рантайм вариант.
0
|
2 / 2 / 1
Регистрация: 31.12.2012
Сообщений: 31
|
||||||
20.03.2013, 19:26 [ТС] | 32 | |||||
Хм, не знаю почему у тебя запустилось а у меня нет
0
|
Заблокирован
|
||||||
21.03.2013, 04:34 | 33 | |||||
Kastaneda, чтобы вывести "размножающуюся" строку осталось дописать несколько строк в ваш код. В некотором смысле это - эмуляция результата, но она полностью соответствует действительности )
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
21.03.2013, 10:12 | 35 |
Каков тип этого массива? Массивы строятся на указателях той кратности, сколько у массива индексов. Конечно, можно хранить линерализованный массив, а обращаться к плоскому, но всё равно придётся создать массив указателей на массивы-элементы, а его строить тоже на указателе и получаем двойной указатель. А по задаче какова будет кратность указателя? Но кратность - часть указательного типа, а на плюсах строгая статическая типизация. Динамически типизируются только указатели на полиморфные классы, но всё равно количество классов и сами классы должны быть известны на этапе компиляции и кратность в полиморфизм вообще не включается. Такой массив запрещён, это не джава.
0
|
21.03.2013, 10:32 | 36 |
Дело в том, что char********************************************* и char* занимают одинаковое кол-во памяти и содержат в себе по сути одну и ту же сущность. Поэтому можно так вольно обращаться с указателями, делая сколько угодно преобразований.
0
|
21.03.2013, 10:32 | |
21.03.2013, 10:32 | |
Помогаю со студенческими работами здесь
36
Работа с матрицами произвольной размерности Работа с матрицами произвольной размерности: Дан двумерный массив произвольной размерности Как в классе реализовать массив произвольной размерности? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |