Вопрос задан 24.06.2023 в 04:52. Предмет Информатика. Спрашивает Молох Дмитрий.

На c++, пожалуйста Самая частая буква Дана строка, возможно, содержащая пробелы. Определите,

какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще всего. При решении этой задачи заглавные и строчные буквы считаются одинаковыми, а прочие символы, не являющиеся буквами, не учитываются. При решении этой задачи нельзя пользоваться вложенными циклами. Входная строка должна обрабатываться за один проход. Входные данные Дана непустая строка. Выходные данные Программа должна вывести в первой строке все буквы, которые встречаются чаще всего в исходной строке. Выводить буквы необходимо в заглавном написании, в алфавитном порядке, без пробелов. Во второй строке выведите единственное число — сколько раз в данной строке встречаются эти буквы. Примеры Ввод Вывод - We all live in the Yellow Submarine! EL 5
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Новиков Иван.

Ответ:

#include <iostream>

#include <map>

using namespace std;

signed main() {

  string s;

  map<char,int> m;

  int mx = 0;

  getline(cin,s);

  for(auto &i : s){

      i = toupper(i);

      if(i < 'A' || i > 'Z') continue;

      m[i]++;

      mx = max(mx, m[i]);

  }

  for(auto &i : m)

      if(i.second == mx)

          cout << i.first;

  cout << "\n" << mx;

}

Объяснение:

0 0
Отвечает Доронина Даша.

Ответ:

#include <iostream>

#include <map>

using namespace std;

signed main(){

  string s;

  map<char,int> m;

  int mx = 0;

  getline(cin,s);

  for(auto &i : s){

      i = toupper(i);

      if(i < 'A' || i > 'Z') continue;

      m[i]++;

      mx = max(mx, m[i]);

  }

  for(auto &i : m)

      if(i.second == mx)

          cout << i.first;

  cout << "\n" << mx;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот C++ код для решения данной задачи:

cpp
#include <iostream> #include <string> #include <vector> #include <algorithm> int main() { std::string input; std::getline(std::cin, input); // Преобразуем строку в нижний регистр для учета регистра std::transform(input.begin(), input.end(), input.begin(), ::tolower); // Создадим массив для подсчета частоты каждой буквы int frequency[26] = {0}; for (char c : input) { if (std::isalpha(c)) { // Увеличиваем счетчик для соответствующей буквы int index = c - 'a'; frequency[index]++; } } // Найдем максимальное значение в массиве frequency int maxFrequency = *std::max_element(frequency, frequency + 26); // Выведем буквы, которые встречаются чаще всего std::string mostFrequentLetters; for (int i = 0; i < 26; i++) { if (frequency[i] == maxFrequency) { mostFrequentLetters += (char)('A' + i); } } // Выводим результат std::cout << mostFrequentLetters << std::endl; std::cout << maxFrequency << std::endl; return 0; }

Этот код сначала преобразует строку в нижний регистр и затем подсчитывает частоту каждой буквы в строке. Затем он находит буквы, которые встречаются чаще всего, и выводит их в алфавитном порядке, а также количество раз, которое они встречаются.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос