![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
![]()
Помогите, пожалуйста, с задачей.
Пользователь с клавиатуры вводит некий текст, и он записывается в массив из char'ов (string по условию использовать нельзя). Среди литер текста особую роль играет знак # , появление которого означает отмену стоящей перед ним буквы, несколько знаков # означает отмену аналогичного числа букв. Создать массив заполненный текстом из первого массива с учетом роли этого знака. (ХЭ#E##НЕLO#LO = HELLO). По моей задумке текст записывается в массив а, затем копируется в массив b. Циклом мы пробегаем по массиву b и как только доходим до # мы сдвигаем массив влево на 2 символа, тем самым удаляя # и стоящий перед ним символ. Я написал код, но он не работает. Помогите разобраться, в чем ошибка. Заранее спасибо Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
зачем здесь ДВА прохода? Это же классический однопроходный алгоритм.
Заводите Указатель (индекс == переменную, которая показывает, какой элемент массива будет записан). Встречаем букву - добавляем её в массив, индекс увеличиваем. Встречаем # - уменьшаем индекс. Всё. Больше ничего не надо делать! |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
![]()
Serge_Bliznykov, а нельзя ли немножко по подробней. А то что-то не очень понятно(
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, примерно так:
Код:
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, примерно так:
Код:
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
![]()
Serge_Bliznykov, спасибо, ваша программа действительно работает..но она не подходит по условию задачи, к сожалению. У вас ненужные символы сразу отметаются как только пользователь их вводит. А в условии сказано, что сначала пользователь вводит данные в массив и на его основе создается 2й массив уже перобразованный. : (
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Господи. ну это же ещё проще (тот же подход, только количество входных символом уже известно и на chr(10) chr(13) не надо проверять):
Код:
|
![]() |
![]() |
![]() |
#8 | |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
![]()
а зачем тут 2 массива
Цитата:
Код:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Mad_Cat, а Вы только мой последний пост читали? Или всю тему прочли?
Если только мой последний пост, тогда сообщаю Вам, что требование о втором массиве (по утверждению автора топика) — это обязательное требование задачи: Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
![]()
Serge_Bliznykov, cпасибо огромное!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Преобразование двумерного массива в одномерный... | S.Mihail | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 09.12.2011 19:24 |
Преобразование массива с++ | davart | Помощь студентам | 3 | 01.10.2010 09:25 |
Преобразование числового массива в набор текстовых файлов | roy71 | Microsoft Office Excel | 9 | 15.02.2010 17:43 |
преобразование массива | PARTOS | Microsoft Office Excel | 4 | 20.01.2010 17:21 |