0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 21
|
|
1 | |
Вывести слова которые повторяются и количество их повторения28.01.2012, 22:46. Показов 9036. Ответов 38
Метки нет (Все метки)
Ребят помогите реализовать следующую програмку: нужно чтоб когда на входе программы было например "мама мыла раму раму мыла мама".
программа вывела: слова которые повторяются и количество их повторения. мама - 2раза раму - 2раза мыла - 2 раза помогите
0
|
28.01.2012, 22:46 | |
Ответы с готовыми решениями:
38
Найти количество чисел , которые повторяются в массиве, а также сколько именно раз они повторяются Найти и вывести на экран все элементы, которые которые повторяются более N/2 раз Удалить из сообщения слова (без учета регистра), которые повторяются. Получить количество элементов массива, которые не повторяются |
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
28.01.2012, 23:23 | 2 | |||||
2
|
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 21
|
|
28.01.2012, 23:44 [ТС] | 3 |
Бро это конечно всё хорошо,даже очень.Но мне нужен [С] код а не плюсы я их не изучал обсалютно не понимаю что ты написал тут, я буду всёравно переделывать потому-что мой экзаменатор знает как я пишу проиги и мне ее нужо потом обьяснить!))
я хочу понять и сам ее написать а мне нужен образец а эту я точно не обьясню, если не трудно и есть время - можещ как то её в СИ переделать и чтоб она была понятной) или просто обьяснить мне алгоритм а я сам напишу, плз
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
28.01.2012, 23:48 | 4 | |||||
1
|
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 21
|
|
29.01.2012, 00:04 [ТС] | 5 |
main.cpp: In function ‘int add_node(treenode_t**, const char*)’:
main.cpp:14:48: error: invalid conversion from ‘void*’ to ‘treenode_t*’ make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1 что с этим делать?
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
29.01.2012, 00:09 | 6 | |||||
А вот не нужно С-программы компилировать, как С++.
1
|
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 21
|
|
29.01.2012, 00:17 [ТС] | 7 |
спасибо большое))) всё отлично работает)) когданибудь я тоже стану таким как вы!)
суровым бородатым как Страуструм кодером)
0
|
Заблокирован
|
||||||
03.02.2012, 12:46 | 8 | |||||
Попробуй вот этот код - он отличен от всех предложенных
Не по теме: PS:easybudda, зачем strtok - он же небезопасный и строку гробит, почему за столько лет от него не откажешся???
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
03.02.2012, 12:49 | 9 |
-=ЮрА=-, Конечно... Куда проще написать новый велосипед, вместо того, чтобы заюзать strtok...
0
|
Заблокирован
|
|
03.02.2012, 12:56 | 11 |
- исходная строка исчезает
- зачем делать копию всей если достаточно віделить память под слова, можно доработать механизм и не записывать в WordArray дублежи - как по мне данное решение даёт понять саму суть поиска числа слов, а не банальное чиканье строки на токены... Добавлено через 25 секунд - что имелось в виду?
0
|
Заблокирован
|
||||||
03.02.2012, 13:04 | 13 | |||||
- потому что sscanf выделяет токен - чаще всего єто слово, если уж вконце слова идёт запятая точка или любой другой разделитель, он отсекается здесь
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
03.02.2012, 14:29 | 14 |
Ага... http://codepad.org/XSBdN5m5 присмотритесь...
0
|
Заблокирован
|
|
03.02.2012, 15:00 | 15 |
easybudda, это всё легко устранимо http://codepad.org/acBNoAdw - галвное же идея sscanf вместо strtok
PS:Благодарю за альфа-тестирование
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
03.02.2012, 16:14 | 16 | |||||
В плане потоков? strtok_r() есть на такие случаи.
Да и чёрт бы с ней. Если нужна исходная строка, go прекрасный выход подсказал Когда я только появился на форуме, я просто не умел этой функцией пользоваться. Тоже знатные велосипеды сочинял по извлечению слов из строк (можно поискать при желании). Разобравшись же с ней просто не вижу смысла городить вот такие непонятные конструкции, да ещё и череватые ошибками вроде обнуления произвольного количества байт памяти... Да само собой, только его ещё заметить надо... Короче, по моему скромному, нужен очень веский повод, чтобы отказываться от стандартных библиотечных функций, гораздо лучше научиться ими пользоваться. Если на С, то
Да и само по себе решение с деревом как-то оптимистичнее выглядит, к тому же у меня в примере слова лишний раз вообще никуда не копируются...
0
|
Заблокирован
|
|
03.02.2012, 16:29 | 17 |
- ну это не аргумент переделать под такое довольно таки просто
- всмысле, 2-й ввод, или что имелось ввиду? Ниже отработка для 2-го ввода 2 теста
Enter text(less than 1024 chars)
test test test Number of words in string 3 test chislo raz v stroke 3 Enter text(less than 1024 chars) test2 test2 test2 Number of words in string 3 test2 chislo raz v stroke 3 Enter text(less than 1024 chars) Добавлено через 4 минуты easybudda, записанные слова из текста можно к примеру использовать для их реверса(вывод слов в предложении наоброт), да миллион таких заданий можно придумать, лично мне нра, навязывать алгоритм я и не хотел просто показал как можно обойтись без strtok - имхо не на много сложней чем while(tok) { tok = strtok(NULL,delim); }
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
03.02.2012, 16:34 | 18 |
Так у меня и первые из повторяющихся слов, и вообще никакие слова никуда не копируются, как лежали в исходной строке, так и лежат. Как-раз аргумент.
Осталось объяснить, за чем... Код
Enter text(less than 1024 chars) bla one two bla two bla three three three Number of words in string 9 bla chislo raz v stroke 3 one chislo raz v stroke 1 two chislo raz v stroke 2 three chislo raz v stroke 3 Enter text(less than 1024 chars) Number of words in string 9 bla chislo raz v stroke 3 one chislo raz v stroke 1 two chislo raz v stroke 2 three chislo raz v stroke 3 Enter text(less than 1024 chars) Number of words in string 9 bla chislo raz v stroke 3 one chislo raz v stroke 1 two chislo raz v stroke 2 three chislo raz v stroke 3 Enter text(less than 1024 chars) Не по теме: Как в том анекдоте
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
03.02.2012, 17:37 | 20 |
кроме while ( 1 ) ничего не правил. Запустил программу, в ответ на приглашение ввёл строку, выдало результат и снова приглашение. Просто нажал enter, выдало предыдущий результат и приглашение...
0
|
03.02.2012, 17:37 | |
03.02.2012, 17:37 | |
Помогаю со студенческими работами здесь
20
Вывести буквы текста которые меньше всего повторяются Найти и вывести на экран слова, которие повторяются Вывести элементы массива, которые повторяются ровно два раза Пользователь вводит 8 чисел, вывести числа которые повторяются 2 или больше раз Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |