Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "cw_task.h"
- // проверка слова на уникальность в массиве
- int is_repeated2(wchar_t **arr, wchar_t *sent, int i) {
- for (int j = 0; j < i; j++) {
- if (wcscasecmp(arr[j], sent) == 0)
- return 1;
- }
- return 0;
- }
- // число повторений слова в массиве
- int count_repeated(wchar_t **arr, wchar_t *word, int n) {
- int kl = 0;
- for (int i = 0; i < n; i++) {
- if (wcscasecmp(arr[i], word) == 0)
- kl++;
- }
- return kl;
- }
- // макс число повторений
- int max_kl(int *arr, int kl) {
- int max = 0;
- // ищем макс число
- for (int i = 0; i < kl; i++) {
- if (arr[i] > max)
- max = arr[i];
- }
- // индекс макс числа
- for (int i = 0; i < kl; i++) {
- if (arr[i] == max)
- return i;
- }
- }
- void most_count(struct Text *text) {
- for (int i = 0; i < text->n; i++) { // пробегаемся по каждому предложению
- wchar_t **arr = (wchar_t **) malloc(sizeof(wchar_t *) * text->sents[i]->words_arr->size); //
- // массив-множество слов
- int kl = 0; // длина множества
- for (int j = 0; j < text->sents[i]->words_arr->size; j++) { // записываем слова в множество
- if (is_repeated2(text->sents[i]->words_arr->words,
- text->sents[i]->words_arr->words[j], j) == 0) {
- arr[kl] = text->sents[i]->words_arr->words[j];
- kl++;
- }
- }
- int *kol = malloc(sizeof(int) * kl); // массив с количествами повторений
- for (int j = 0; j < kl; j++) {
- kol[j] = count_repeated(text->sents[i]->words_arr->words, arr[j],
- text->sents[i]->words_arr->size);
- }
- if (arr[max_kl(kol, kl)] != NULL)
- wprintf(L"%ls\n", arr[max_kl(kol, kl)]);
- free(kol);
- free(arr);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement