Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
NanoTMklesh
0 / 0 / 0
Регистрация: 11.02.2018
Сообщений: 36
1

Массив слов, присвоение

26.12.2018, 14:17. Просмотров 234. Ответов 0

Задача: составить массив неповторяющихся слов. Я ввожу в два файла строки. Далее беру их из файлов и создаю две библиотеки, где записаны все слова из этих строк. Потом сравниваю эти слова. Если такое слово уже есть в массиве неповторяющихся слов, то я пропуская это слово, если нету, то вношу его в директорию. Проблема возникла с присваиванием слова к директории. Быть может есть еще ошибки, которые я не вижу. Подскажите как исправить и можно ли сделать проще.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <locale.h>
#define SIZE 256
 
int main()
{
    setlocale(LC_ALL, "RUS");
    FILE *input_1, *input_2, *output;
 
    int libLen_1 = 0, //коли-во слов в библиотеке первой стрки
        libLen_2 = 0,//коли-во слов в библиотеке второй стрки
        flag = 0, //
        size_d = 0,
        poss_d = 0,
        poss = 0;
 
    char string_f_file[SIZE]; // строка для файлов
    char string_1[SIZE], string_2[SIZE]; // строка из первого и второго файла
    char library_1[SIZE][SIZE], library_2[SIZE][SIZE]; // библиотека слов
    char directory[SIZE][SIZE]; //непвторяющиеся слова
 
    //записываю в файлы строки из консоли
    input_1 = fopen("input1.txt", "w");
    printf("Введите строку для первого файла: "); gets (string_f_file);
    fputs(string_f_file, input_1);
    fclose(input_1);
    input_2 = fopen("input2.txt", "w");
    printf("Введите строку для второго файла: "); gets (string_f_file);
    fputs(string_f_file, input_2);
    fclose(input_2);
 
    //получаю из файлов
    input_1 = fopen("input1.txt", "r");
    input_2 = fopen("input2.txt", "r");
    fgets(string_1, SIZE, input_1);
    fgets(string_2, SIZE, input_2);
 
    for (int i = 0; i < strlen(string_1); i++) //создание первой библиотеки
    {
        poss = 0;
        char word[SIZE] = "";
        while (!isspace(string_1[i]) && i < strlen(string_1))
        {
            library_1[libLen_1][poss] = string_1[i];
            poss++;
            i++;
        }
        libLen_1++;
    }
    for (int i = 0; i < strlen(string_2); i++) //создание второй библиотеки
    {
        poss = 0;
        char word[SIZE] = "";
        while (!isspace(string_2[i]) && i < strlen(string_2))
        {
            library_2[libLen_2][poss] = string_2[i];
            poss++;
            i++;
        }
        libLen_2++;
    }
    // сравнение слов со словами из директории
    for (int q = 0; q < libLen_1; q++)
    {
        flag = 0;
        for (int j = 0; j < libLen_2; j++)
        {
            if (strcmp(library_1[q], library_2[j]) == 0)
            {
                for (int n = 0; n < size_d; n++) // проверка: есть ли уже такое слово в массиве
                {
                    if (strcmp(directory[n], library_1[q]) == 0)
                    {
                        flag++;
                    }
                }
                if (flag == 0)
                {
                    directory[poss_d] = library_1[q];
                    poss_d++;
                }
            }
            else
            {
                for (int n = 0; n < size_d; n++) // проверка: есть ли уже такое слово в массиве
                {
                    if (strcmp(directory[n], library_1[q]) == 0)
                    {
                        flag++;
                    }
                }
                if (flag == 0)
                {
                    directory[poss_d] = library_1[q];
                    poss_d++;
                }
            }
        }
    }
 
    fclose(input_1);
    fclose(input_2);
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2018, 14:17
Ответы с готовыми решениями:

Циклы и присвоение русских слов
Привет! Хочется написать программу, чисто для интереса. Вот моя прога, ниже, она теоритически...

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
мне нужна функция, которая во входе получает строку слов и рзделителей (&quot; &quot;, &quot;,&quot;, &quot;.&quot;, &quot;_&quot;, &quot;&quot;&quot;),...

Функция: принять массив слов, вернуть массив из групп этих слов
Напишите функцию на языке PHP, которая принимает массив слов, а возвращает массив из групп этих...

Присвоение расчетных данных в массив
Посмотрела предложенные топики - не уверена, что подходит. Помогите плиз, массив с расчетными...

Ввести массив слов, вывести в документ WORD список слов и статистику букв
Разработать программу, которая запрашивает у пользователя количество слов, которое он хотел бы...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2018, 14:17

Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
Дан массив слов. Определить количество слов массива, которые не являются «перевертышем». ...

Задан массив русских слов. Напечатать все пары слов, образующих рифму
Задан массив русских слов. Напечатать все пары слов, образующих рифму Напишите пожалуйста...

Запись всех повторяющихся слов в новый массив слов
компилируется без ошибок, запускаю консоль после 13 строчки, а именно ввода количества слов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru