Advertisement
LilChicha174

Untitled

Dec 24th, 2021
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. #include "cw_task.h"
  2.  
  3.  
  4. // проверка слова на уникальность в массиве
  5. int is_repeated2(wchar_t **arr, wchar_t *sent, int i) {
  6.     for (int j = 0; j < i; j++) {
  7.         if (wcscasecmp(arr[j], sent) == 0)
  8.             return 1;
  9.     }
  10.     return 0;
  11. }
  12.  
  13. // число повторений слова в массиве
  14. int count_repeated(wchar_t **arr, wchar_t *word, int n) {
  15.     int kl = 0;
  16.     for (int i = 0; i < n; i++) {
  17.         if (wcscasecmp(arr[i], word) == 0)
  18.             kl++;
  19.     }
  20.     return kl;
  21. }
  22.  
  23. // макс число повторений
  24. int max_kl(int *arr, int kl) {
  25.     int max = 0;
  26.     // ищем макс число
  27.     for (int i = 0; i < kl; i++) {
  28.         if (arr[i] > max)
  29.             max = arr[i];
  30.     }
  31.     // индекс макс числа
  32.     for (int i = 0; i < kl; i++) {
  33.         if (arr[i] == max)
  34.             return i;
  35.     }
  36. }
  37.  
  38. void most_count(struct Text *text) {
  39.     for (int i = 0; i < text->n; i++) { // пробегаемся по каждому предложению
  40.         wchar_t **arr = (wchar_t **) malloc(sizeof(wchar_t *) * text->sents[i]->words_arr->size); //
  41.         // массив-множество слов
  42.         int kl = 0; // длина множества
  43.         for (int j = 0; j < text->sents[i]->words_arr->size; j++) { // записываем слова в множество
  44.             if (is_repeated2(text->sents[i]->words_arr->words,
  45.                              text->sents[i]->words_arr->words[j], j) == 0) {
  46.                 arr[kl] = text->sents[i]->words_arr->words[j];
  47.                 kl++;
  48.             }
  49.         }
  50.         int *kol = malloc(sizeof(int) * kl); // массив с количествами повторений
  51.         for (int j = 0; j < kl; j++) {
  52.             kol[j] = count_repeated(text->sents[i]->words_arr->words, arr[j],
  53.                                     text->sents[i]->words_arr->size);
  54.         }
  55.         if (arr[max_kl(kol, kl)] != NULL)
  56.             wprintf(L"%ls\n", arr[max_kl(kol, kl)]);
  57.         free(kol);
  58.         free(arr);
  59.     }
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement