![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Буратиныч |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Как созидается динамическое имя переменной и извлекается из него значение?
Допустим i=1 и переменной name1 надо присвоить десятку, т.е. "name" + i = 10 а затем извлечь из из этой переменной значение. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Буратиныч, ты сначала сформулируй, что такое "переменная с динамическим именем" и зачем это может быть нужно.
Это сообщение отредактировал(а) bsa - 15.3.2011, 11:40 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| Буратиныч |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Сформулировал как смог Допустим имеется цикл. Переменная i заранее не известна. Поэтому в зависимости от итерации надо присваивать значения. name1 = 10 name2 = 20 или "name" + i = i * 10; |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
http://liveworkspace.org/code/119cc878a00e...6b69c871f8d26c8 (подправлено)
а про обычные массивы Вы в курсе ? Добавлено @ 12:11 http://liveworkspace.org/code/19cb2862db5d...7183837f046a628 Это сообщение отредактировал(а) mes - 15.3.2011, 13:03 |
|||
|
||||
| Буратиныч |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
mes, спасибо! Но почему выскакивает ошибка? Error 2 error C2601: 'arr' : local function definitions are illegal |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
потому что пытаетесь определить функцию внутри другой функции.. |
|||
|
||||
| Буратиныч |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Хочу из следующих данных:
int name0 = 1; int name1 = 11; int name2 = 22; получить строчку: name3=22 name2=11 name1=1 name0=1 но код ниже мне всё нулит. В чём ошибка?
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
в том, что не поняли его назначение.. для вашего случая подойдут обычные массивы : http://liveworkspace.org/code/28ff4d017e45...aac84ed8246f077 |
|||
|
||||
| Буратиныч |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Нда, действительно массивы простое и гениальное решение. Только чтобы понять, мне это пришлось повторить дважды 1) А если размер массива выясняется только в конце цикла, т.е. не известно сколько там будет "name", может только 3, может миллион, то как его объявлять? Сразу резервировать память под миллион элементов? 2) Почему цикл считает вперёд, а не назад, как хотелось бы, начиная с меньшего к большему, а не наоборот:
В Output выводит
Значение Hcount = 9 |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
если C++, тo можно просто использовать /]std::vector
чтоб считал наоборот, замените -- на ++, а > на <.. или я не так понял вопроса? |
|||
|
||||
| Буратиныч |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Смысл такой, чтоб обрабатывал числа от 9 до 1. Цикл начинается с hx1 = 9-1, т.е. 8, и пока hx1 больше единицы на каждой итерации отнимать по 1. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну и ? в чем проблема то ? http://liveworkspace.org/code/a29f3b9b0300...07fc344079c3b75 |
|||
|
||||
| Буратиныч |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.3.2011 Репутация: нет Всего: нет |
Прилагаю скриншот.
Не знаю почему, но почему-то в первом условии for получается 10 = 9 - 1 Присоединённый файл ( Кол-во скачиваний: 15 )
snap3.jpg 38,64 Kb |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |