|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.07.2013, 14:37 | #1 |
Пользователь
Регистрация: 12.12.2012
Сообщений: 25
|
Сортировка букв
Код:
Сделал через метод "Пузырька", но преподавателю не понравилось. Сказал слишком трудно, что можно легче. Подскажите как можно сделать легче. |
03.07.2013, 15:39 | #2 | |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
Цитата:
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
|
03.07.2013, 15:43 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
во-первых, если бы задача решалась в Паскале, то я бы рекомендовал использовать для решения множества (set of char). Но я не знаю, есть ли такие структуры в C.
во-вторых, для решения подобных задач очень подходит такой алгоритм: определяем массив, индексами которых являются символы (опять же в Паскаль это можно записать что MyArr : array[#0..#255] of byte; или MyArr : array[#0..#255] of boolean В начале этот массив заполняете нулями. Потом ОДИН раз проходите по строке, проставляя при этом признак наличия данной буквы (MyArr[ s[j]] = 1 ) потом надо вывести те символы, для которых признак не ноль (не false) вот и всё. Сортировать ничего не нужно. p.s. прошу извинения, что я со своим Паскалем лезу в С-шную тему, но, вдруг, мой пост будет кому-то полезен... |
03.07.2013, 15:54 | #4 | |
Пользователь
Регистрация: 12.12.2012
Сообщений: 25
|
Цитата:
|
|
03.07.2013, 16:10 | #5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,285
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
03.07.2013, 16:28 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
BDA, круть! респект.
хотел уточнить, а что означает запись Цитата:
и чем такая запись лучше банального цикла?: Код:
|
|
03.07.2013, 16:53 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,285
|
1) Цикл выполняется, пока условие истинно, то есть не равно 0.
Поскольку все строки в си заканчиваются нультерминантом, то этот цикл остановится на конце строки. 2) Мне просто не захотелось применять strlen (по идее, эта функция пройдется по строке до нультерминанта и вернет полученную длину, то есть никакого выигрыша не получится, кроме некой простоты для понимания).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
03.07.2013, 18:11 | #8 |
Пользователь
Регистрация: 12.12.2012
Сообщений: 25
|
Большое спасибо всем, вы очень мне помогли!!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка массива из латинских букв | ReMicroN | Помощь студентам | 3 | 07.05.2012 09:55 |
сортировка букв | dimapain | Помощь студентам | 2 | 02.05.2012 22:52 |
Определите сколько слов заданного текста составлено из букв русского алфавита, а сколько из букв латинского алфавита. Слова, в кот | potemos | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 18.04.2012 13:14 |
Сортировка заглавных и строчных букв | Ronk | Общие вопросы C/C++ | 6 | 03.03.2010 19:44 |