М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dapmoney2p0c8c0
dapmoney2p0c8c0
07.04.2023 05:06 •  Информатика

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

👇
Ответ:
poldin04
poldin04
07.04.2023

#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;

}

4,6(77 оценок)
Открыть все ответы
Ответ:
AsiyaEkb
AsiyaEkb
07.04.2023

Ах ты ж мелкий, сам КБО написать не можешь?) - это приговор.

Объяснение:

#include <bits/stdc++.h>

 

using namespace std;

 

int cnt[30], kol;

 

string s;

 

bool check (int mid) {

 int x[30]{}, y = 0;

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

   x[s[i] - 'a' + 1]++;

   if (x[s[i] - 'a' + 1] == 1)

     y++;

 }

 int l, r = mid - 1;

 for (l = 0; r < s.size();) {

   if (y == kol)

     return true;

   if (x[s[l] - 'a' + 1] == 1)

     y--;

   x[s[l] - 'a' + 1]--;

   l++;

   r++;

   if (x[s[r] - 'a' + 1] == 0)

     y++;

   x[s[r] - 'a' + 1]++;

 }

 return false;

}

 

int main()

{

 ios::sync_with_stdio(0);

 cin.tie(0);

 cin >> s;

 for (auto it : s)

   cnt[it - 'a' + 1]++;

 for (int i = 1; i <= 26; i++) {

   if (cnt[i] > 0)

     kol++;

 }

 int l = 0, r = s.size();

 while (r - l > 1) {

   int mid = l + (r - l) / 2;

   if (check (mid))

     r = mid;

   else

     l = mid;

 }

 cout << r;

}

4,4(64 оценок)
Ответ:
мад228
мад228
07.04.2023
var h1,m1,n,d,p,h2,m2: integer;
begin
  write('начало занятий (часы, минуты): ');  readln(h1,m1);
  write('количество уроков: ');  readln(n);
  write('длительность уроков: ');  readln(d);
  write('длительность перемен: ');  readln(p);
  m2:=m1+n*d+(n-1)*p;
  h2:=h1+m2 div 60;
  m2:=m2 mod 60;
  writeln('время окончания занятий: ',h2,' часов   ',m2,' минут');
end.

начало занятий (часы, минуты): 9 30
количество уроков: 4
длительность уроков: 45
длительность перемен: 10
время окончания занятий: 13 часов   0 минут
4,5(28 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ