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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
batyr
1 / 1 / 0
Регистрация: 19.10.2012
Сообщений: 64
#1

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

08.11.2012, 13:39. Просмотров 1017. Ответов 5
Метки нет (Все метки)

Дана строка длиной не более 80 символов, оканчивающаяся точкой. Нужно определить символ, встречающийся в тексте с максимальной частотой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить символ, встречающийся в тексте с максимальной частотой (C++):

Найти самый часто встречающийся символ в тексте - C++
я "сделал" программу шифратор и дешифратор текста по методу цезаря, но теперь мне надо сделать так чтобы программа показывала самый...

Определить длину содержащейся в тексте максимальной последовательности символов, отличных от букв - C++
для заданного текста определить длину содержащейся в нём максимальной последовательности символов, отличных от букв.Помогите пожалуйста...

Определить длину содержащейся в тексте максимальной серии символов, отличных от букв латинского алфавита - C++
1.Текст – это непустая последовательность букв. Дан текст. Определить длину содержащейся в тексте максимальной серии символов, отличных от...

Определить сколько раз заданный символ встречается во веденном тексте - C++
Разработать программу, которая вводит произвольный текст и символ и подсчитывает, сколько раз этот символ встречается в веденном тексте.

Наиболее часто встречающийся символ в текстовом файле - C++
считал символы из файла в строку, но не могу понять как найти наиболее часто встречающийся символ как в c++ проверить совпадение символа...

Функция определяющая символ встречающийся в строке чаще всего - C++
нужно написать функцию которая подает на вход строку , вывести на экран символ, встречающийся в строке чаще всего

5
cosmo77
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 7
08.11.2012, 13:41 #2
создать массив счетчиков символов . пройтись по строке и заполнить его. потом пройтись по массиву и найти максимальное
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.11.2012, 16:06 #3
С помощью карты:
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
batyr
1 / 1 / 0
Регистрация: 19.10.2012
Сообщений: 64
09.11.2012, 19:38  [ТС] #4
yuron_477, а можно его только с stdio.h сделать?
0
Kuzia domovenok
2060 / 1905 / 174
Регистрация: 25.03.2012
Сообщений: 6,557
Записей в блоге: 1
09.11.2012, 20:04 #5
Цитата Сообщение от batyr Посмотреть сообщение
yuron_477, а можно его только с stdio.h сделать?
Можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main(){
  unsigned char text[100];
  char max_id;
  int i=0;
  int id[256];
  i=256; while(i){
         i--;
         id[i]=0;
         }
  printf("Input text");
  scanf("%s", text);
  while(text[i]){id[text[i]]++; if (id[text[i]]>=id[max_id]) max_id=text[i]; i++;}
  printf("\n%c - maximum", max_id);
  return 0;
}
только с stdio. Тут я согласен.
1
Kuzia domovenok
2060 / 1905 / 174
Регистрация: 25.03.2012
Сообщений: 6,557
Записей в блоге: 1
14.12.2012, 17:09 #6
Всего существует 256 ASCII символов.
Cначала мы предполагаем, что каждый встречается 0 раз,
поэтому храним 256 счётчиков для каждого символа в массиве id[256]
затем, получив очередной символ, увеличиваем его счётчик на единицу в массиве id под номером равным коду символа text[i]
Заодно сразу же и проверяем, не превзошёл ли счётчик после увеличения значение для наиболее частого символа.
Если превзошёл, то наиболее частым символом становится он.
1
14.12.2012, 17:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 17:09
Привет! Вот еще темы с ответами:

В заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз. - C++
Помогите пожалуйста, народ!:) Задание. В заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз.

В заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз - C++
Условие задачи: в заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз.

Посчитать в слове наиболее часто встречающийся символ и его процентное содержание - C++
Подскажите пожалуйста, как посчитать в слове наиболее часто встречающийся символ и его процентное содержание.. И все это вывести на экран!!...

В тексте удалить указанный символ везде, где он встречается. Программа не позволяет ввести символ - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;cstdlib&gt; using namespace std; int main() { setlocale(0,&quot;Russian&quot;); char s; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.