|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.07.2017, 17:27 | #1 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
Задачка из К&Р 2
Вывести частоту появления вводимых символов.
То есть если вводится поток "aabbc 12344" узнать какие символы сколько раз появляются. Тут например будет символ "a" -2 раза "b" тоже два раза и "4" по два раза остальные по одному разу появляются Я сделал с помощью двух массивов. В первом массиве записываем весь поток потом удаляем повторяющиеся элементы и в то же время считаем количество повторений и сразу записываем во второй массив. Правильно ли так делать или возможно сделать по легче. Код:
|
03.07.2017, 18:20 | #2 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 734
|
- Конечно можно. Один массив правильно - просто последовательность значений(символов). Второй массив - классов или структур. Структура(класс) будет содержать 2 элемента: сам символ(char) и количество его повторений(int).
Потом в конце выводишь просто второй массив на печать и все!:D
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
03.07.2017, 18:23 | #3 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 734
|
- файлы здесь нипричем, Вы же из консоли вводите.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
03.07.2017, 18:33 | #4 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 734
|
- вот это я не понял зачем делать. Изменяете исходный массив же ведь. Правильно? Я чувствую, что тут надо все программу переписывать по моей идее.:D
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
03.07.2017, 18:35 | #5 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 734
|
Аааааааааааа, понял теперь, удаляете повторяющиеся элементы. Сделайте по моей идее, да не мучайтесь.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
03.07.2017, 18:41 | #6 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 734
|
- неправильный алгоритм работы. Из Вашего сообщения я понял, что нужно считать повторения только повторяющихся символов, но в Вашей реализации он проходит до конца массива(переменная j). Если же считать только повторяющиеся символы, то при несовпадении символов в ветке else должен быть break.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
03.07.2017, 18:48 | #7 | |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
Цитата:
|
|
03.07.2017, 18:50 | #8 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
|
04.07.2017, 08:38 | #9 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 734
|
Он считает сколько символов вообще входит в строку? А не только повторяющиеся подряд?
Еще я хотел посоветовать, что лучше бы исходный массив завести массив символов и целые переменные можно заводить через запятую. Т.е. вот так: Код:
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Последний раз редактировалось Cuprum5; 04.07.2017 в 12:18. |
04.07.2017, 17:33 | #10 | |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
Цитата:
Не вижу смысла поменять массив типа int на тип char |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задачка из К&Р | goto ∞ | Общие вопросы C/C++ | 2 | 02.07.2017 15:22 |
не перегружается ostream& operator<<(ostream &, Card&) | Antej | Общие вопросы C/C++ | 2 | 17.12.2012 14:02 |
Вопрос по поводу меню на сайте, html&css&js | antoxa22 | HTML и CSS | 14 | 30.12.2011 11:02 |
TForm & TImage & PNG & Прозрачность | delphi_beginner | Общие вопросы Delphi | 7 | 19.09.2009 08:46 |