В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
ivantretyak02
ivantretyak02
17.02.2022 22:19 •  Информатика

Ввести текст и список слов. Для каждого слова из заданного списка найти, сколько раз оно встречается в тексте, и рассортировать список слов по убыванию количества их встречаемости. с++

Показать ответ
Ответ:
UpGitYT
UpGitYT
23.12.2020 20:21

#define use_CRT_SECURE_NO_WARNINGS 1

#include <iostream>

#include <cstring>

using namespace std;

int main() {

setlocale(LC_ALL, "Russian");

const int N = 81;

const int N2 = 81;

int numbers[N];

int count = 0;

int count2 = 0;

string words[N];

string kwords[N2];

char the_string[N], * p;

char* next_token = nullptr;

int i = 0;

for (int k = 0; k < N; k++) {

 numbers[k] = 0;

}

cout << "Введите строку:";

cin.getline(the_string, N);  

p = strtok_s(the_string, " ", &next_token);

while (p != nullptr) {

 words[i] = p;

 i++;

 p = strtok_s(nullptr, " ", &next_token);

 count++;

}  

cout << endl;

char the_string2[N2], * p2;

char* next_token2 = nullptr;

cout << "Введите нужные слова:";

cin.getline(the_string2, N2);

int j = 0;

p2 = strtok_s(the_string2, " ", &next_token2);

while (p2 != nullptr) {

 kwords[j] = p2;

 j++;

 p2 = strtok_s(nullptr, " ", &next_token2);

 count2++;

}

cout << endl;

for (int i = 0; i < count; i++) {

 for (int j = 0; j < count2; j++) {

  if (words[i] == kwords[j]) {

   numbers[j] = numbers[j] + 1;

   break;

  }

 }

}

int t; string d;

for (int j = 0; j < count2; j++) {

 for (int i = 0; i < count2; i++) {

  if (numbers[i] < numbers[i + 1]) {

   t = numbers[i + 1];

   numbers[i + 1] = numbers[i];

   numbers[i] = t;

   d = kwords[i + 1];

   kwords[i + 1] = kwords[i];

   kwords[i] = d;

  }

 }

}

cout << endl;

for (int i = 0; i < count2; i++) {

 cout << kwords[i] << " ";

}

return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота