Форум программистов, компьютерный форум, киберфорум
Наши страницы

Определить символ, встречающийся в тексте с максимальной частотой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Черепашья графика http://www.cyberforum.ru/cpp-beginners/thread692048.html
Текст задачи из учебника Дейтела: Язык Лого, особенно популярный среди пользователей персональных компьютеров, сделал знаменитой черепашью графику. Представьте себе механическую черепаху, которая...
C++ Дано натуральное число n. Вычислить Пожалуйста, помогите решить задачу с помощью циклов. Дано натуральное число n. Вычислить: http://www.cyberforum.ru/cpp-beginners/thread692019.html
C++ Поиск двух групп наименьших слов
Задача такая: выделить две группы самых коротких слов, отобразить их на экране. Т.е. пользователь с клавиатуры вводит текст (предложение). Программа разбивает это предложение на слова, находит...
обработка текста C++
Прочитать из текстового файла строку (имя файла и номер строки вводятся с клавиатуры) и вывести из нее на экран слова в соответствии со следующим алгоритмом: сначала - самое короткое слово, потом...
C++ наследование классов http://www.cyberforum.ru/cpp-beginners/thread691996.html
Есть базовый класс class List { protected: struct Element { char name; int n_bus; int n_mar;
C++ Подобрать к заданному числу ранвую или близкую по значению переменную Вобщем есть 10 переменных. Пользователь задает число Н и к нему подбирается равная либо большая (максимально к нему близкая) по значению переменная. Как это осуществить в плане кода? подробнее

Показать сообщение отдельно
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.11.2012, 16:06
С помощью карты:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <map>
#include <string>
using std::cout;
using std::endl;
using std::string;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    string str = "Дана строка длиной не более 80 символов, оканчивающаяся точкой. "
        "Нужно определить символ, встречающийся в тексте с максимальной частотой.";
    std::map<char, size_t> chars;
    size_t i = 0;
    while (str[i++])
    {
        if (str[i] == ' ')
            continue;
        chars[ str[i] ]++;
    }
    for (auto cur = chars.cbegin(); cur != chars.cend(); cur++)
        cout<<(*cur).first<<": "<<(*cur).second<<endl;
    size_t maxElem = chars.cbegin()->second;
    char maxCh = chars.cbegin()->first;
    for (auto it = chars.cbegin(); it != chars.cend(); it++)
    {
        if ((*it).second>maxElem) 
        {
            maxElem = (*it).second;
            maxCh = (*it).first;
        }
    }
    cout<<"Символ \""<<maxCh<<"\" наибольше из всех встречается в строке "<<maxElem<<" раз\n";
    system("pause");
    return 0; 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru