Предмет: Информатика, автор: guskov315

Помогите решить задачу на C++

Приложения:

Леганда555: какая версия языка?
guskov315: Ну, у меня VS 2017
Леганда555: а никакие ограничения не даны? на длину одного слова например
guskov315: Весь текст задачи есть на скрине. Четких ограничений нет
Леганда555: Минут через 15 допишу
Леганда555: мда, получилось не 15 минут :3

Ответы

Автор ответа: Леганда555
1

#include <iostream>

#include <string>

#include <vector>

#include <sstream>

#include <Windows.h>

using namespace std;

int main() {

int SIZE = 1000;

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string s;

getline(cin, s);

vector<string> words;

stringstream ss(s);

string word;

while (getline(ss, word, ' '))

 if (word != "")

  words.push_back(word);

vector<vector<string>> cnt(SIZE);

for (auto& i : words)

 cnt[count(i.begin(), i.end(), 'А') + count(i.begin(), i.end(), 'а')].push_back(i);

for (int i = 0; i < SIZE; ++i)

 if (cnt[i].size() > 0) {

  cout << "Буква А встречается " << i << " раз в данных словах: ";

  for (auto& j : cnt[i])

   cout << j << ' ';

  cout << '\n';

 }

}


Леганда555: Реализация, конечно, не идеальная, но думаю, что неплохо. Единственная проблема - ограничение в количество букв в словах (переменная SIZE, я 1000 установил, это максимальное количество букв А в одном слове), не получилось по-умному сделать
Леганда555: Программа протестирована, ответы даёт верные
Похожие вопросы
Предмет: Окружающий мир, автор: максим867
Предмет: Русский язык, автор: аир55500