|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.04.2012, 21:20 | #1 |
Новичок
Джуниор
Регистрация: 11.04.2012
Сообщений: 2
|
Строки и буквы
По условию задачи, вводится строка со словами, необходимо вывести на экран слово, в котором наименьшее число повторяющихся букв. Т.е. например, слово бегемот, барабан, сын, мама...Вывести должно мама. Если таких слов несколько вывести первое.
Вот мой кусок кода, понимаю, что работает неправильно, но как переделать догнать не могу(( Логика в том,что когда встречается одинаковая буква, то я её заменяю на символ $ , а потом дополнительно проверяю совпадение с данным символом Код:
Последний раз редактировалось ACE Valery; 12.04.2012 в 13:20. |
12.04.2012, 01:12 | #2 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
ужос нах !
Код:
|
12.04.2012, 01:23 | #3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
memset(&buf,0,sizeof(int)*255);
наверное не нужен, если int buf[255] = {}; занести в тело цикла while. зы. Что будет производительнее? Последний раз редактировалось EUGY; 12.04.2012 в 01:27. |
12.04.2012, 02:42 | #4 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2onewho
у тебя вроде как выведет слово с наименьшим числом уникальных букв (т.е неповторяющихся)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
12.04.2012, 02:43 | #5 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
В целом да, тем более, что вызов неправильный, амперсанд убрать нужно. Но разницы не будет, декларации вроде int buf[255] = {0}; состоят из выделения памяти и всё того же memset'а, только безопаснее с точки зрения случайных ошибок, вроде той, что допустил onewho, передав адрес указателя на первый элемент массива.
|
12.04.2012, 03:14 | #6 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
"мама" - всего две буквы. _____________ Я тут глянул, при вызове memset выполняется команд поболее.... Код:
|
|
12.04.2012, 03:51 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
У меня код одинаковый получается, что с использованием memset, что инициализации массива, от компилятор зависит, но всё равно ощутимой разницы не будет.
Затем, чтобы было видно, что нулём инициализируется. Безусловно, можно не писать, но мне лично больше нравится с нулём (всё равно ведь разницы нет). Последний раз редактировалось netrino; 12.04.2012 в 03:53. |
12.04.2012, 13:02 | #8 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2EUGY
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
12.04.2012, 14:09 | #9 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Мда, можно двояко понимать.
Раз уж решили докапаться до кода, то с русские символами тоже облом. buf[*pp] трактуется как отрицательный индекс. Так что-ли. переделать: Код:
|
13.04.2012, 12:31 | #10 |
Форумчанин
Регистрация: 05.04.2012
Сообщений: 134
|
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычеркните из введенной строки буквы, стоящие на нечётных местах. | nikitok000 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 04.12.2011 19:23 |
строки(поменять местами буквы) | sllh_111 | Помощь студентам | 2 | 25.11.2010 19:41 |
pascal. строки.заглавные буквы | parovoz121 | Помощь студентам | 1 | 22.09.2010 08:06 |
Строки. преобразовать прописные латинские буквы в строчные | Antonio_getscool | Помощь студентам | 5 | 12.03.2010 09:43 |
Строки. Заглавные буквы после точки (Delphi) | ekzobyte | Помощь студентам | 8 | 27.05.2009 22:38 |