![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 03.07.2015
Сообщений: 6
|
![]()
Доброго времени суток! Помогите, пожалуйста, с заданием
Задание: Задан символьный массив S(n), n≤700. Разработать программу, которая изымает из этого массива все повторные вхождения цифр и арифметических знаков. Вывести результат на консоль. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Под какую ОС? Где твоё решение? Показывай свой код..
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 474
|
![]()
И, за компанию, название компилятора, каким образом изымать (просто не выводить на экран или сначала преобразовать строку).
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 03.07.2015
Сообщений: 6
|
![]()
Исходя из задания, можно предположить что строка объявлена и заранее известно ее длина:
Код:
1. Удалить ненужные элементы, сместив оставшиеся 2. Переписать массив, с нужными элементами ...но как это сделать, я не особо представляю) Цитата:
Вывести нужно начальный и конечный результат. |
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Так-как в ASCII-таблице коды цифр идут подряд, то их можно вытащить за один проход. Со-знаками уже такой фокус не пройдёт (в последовательности есть две дырки /см.рис.ниже/), и их нужно искать каждый в отдельности. А это ещё 4 прохода. Итого, изъять всё данные из строки можно за 5 проходов (если искать каждый символ отдельно, то за 2). ИМХО..
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 09.04.2017 в 14:34. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Вот тебе решение на Фасм'е. Под Тасм переделаешь сам..
Массив заполняется случайным образом. Длина массива вычисляется тоже рандомно, в диапазоне 16..699, в следствии чего при каждом запуске программы данные и результат будут разные. Организовано в один проход.. Фильтруется только первая половина (127 символов) ASCII-таблицы, а это все символы, кроме кирилицы и псевдографики. Чтоб не расходовать память, найденные элементы помещается в тот-же массив, перезаписывая его с головы. Код:
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 03.07.2015
Сообщений: 6
|
![]()
Немного погуглив, узнал про анонимные метки и что делают отдельные прерывания, также до этого я думал что команды lods и stos что-то, куда-то пересылают, а теперь знаю что, куда и откуда. Как минимум смогу объяснить данную программу.
Очень Вам благодарен! Отдельное спасибо за комментарии. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удалить из записи числа все вхождения последней цифры | Анатолий666 | Общие вопросы C/C++ | 1 | 16.09.2015 18:31 |
Необходимо найти самое длинное слово и удалить все его вхождения | Julia1 | Помощь студентам | 3 | 30.06.2014 22:40 |
Из символьного массива исключить все элементы, содержащие символ 'A' | Ebon | Помощь студентам | 1 | 11.06.2012 01:19 |
Из текста удалить все вхождения некоторого наперед заданного символа и символ, стоящий в тексте перед ним | LittleStudent | Помощь студентам | 1 | 15.04.2011 00:46 |
Удалить из строкового значения все вхождения заданного символа. Delphi | Saka | Помощь студентам | 10 | 08.03.2010 01:22 |