Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 Аватар для BraunDe
7 / 7 / 4
Регистрация: 09.06.2013
Сообщений: 27

Литерный массив, текст, буквы, алфавитный порядок.(Полное задание в теме)

17.06.2013, 20:06. Показов 1135. Ответов 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include "stdafx.h"
#include <conio.h>
#include <Windows.h>
#include <locale.h>
 
char *gl = {"кпстфхцчшщ"}; // глухие буквы
// получаем гласные буквы
char *getVowel(char *pw, char *ps)
{
       
    char *res;
        int i, j, k;
        res = (char *)calloc(11, sizeof(char));
        k = 0;
        for(i = 0; i < strlen(pw); i++)
        {
                for(j = 0; j < strlen(ps); j++)
                        if(pw[i] == ps[j])
                        {
                                res[k++] = pw[i];
                                break;
                        }
        }
        res[k] = 0;
        return res;
}
// получаем согласные буквы
char *getCons(char *pc, char *ps)
{
        int i, j, k;
        for(i = 0; i < strlen(pc); i++)
        {
                for(j = 0; j < strlen(ps); j++)
                        if(pc[i] == ps[j])
                        {
                                for(k = i; k < strlen(pc); k++)
                                        pc[k] = pc[k + 1];
                                i--;
                                break;
                        }
        }
        return pc;
}
// проверка того - занесена ли звонкая согласная в итоговый набор
// ps - промежуточный набор звонких
// pch - текущая звонкая буква
int check(char *ps, char pch)
{
        int i;
        int res = 1;
        for(i = 0; i < strlen(ps); i++)
                if(ps[i] == pch)
                {
                        res = 0;
                        break;
                }
        return res;
}
// получение звонких согласных
char *getZvSogl(char *pzv, char *ps)
{
        int i, j, k;
        char *zv = {"бвгджзйлмнр"};
        for(i = 0; i < strlen(zv); i++)
        {
                for(j = 0; j < strlen(ps); j++)
                        if(zv[i] == ps[j])
                        {
                                if(check(pzv, zv[i]) == 1)
                                {
                                        k = strlen(pzv);
                                        pzv[k] = zv[i];
                                        pzv[k + 1] = 0;
                                        break;
                                }
                        }
        }
        return pzv;
}
// получение глухих согласных
char *getGlSogl(char *pgl, char *ps)
{
        int i, j, k;
        for(i = 0; i < strlen(gl); i++)
        {
                for(j = 0; j < strlen(ps); j++)
                        if(gl[i] == ps[j])
                        {
                                if(check(pgl, gl[i]) == 1)
                                {
                                        k = strlen(pgl);
                                        pgl[k] = gl[i];
                                        pgl[k + 1] = 0;
                                        break;
                                }
                        }
        }
        return pgl;
}
int main()
{
        setlocale (0, "RUS");
        int n, i, j, k;
        char **s; // хранит массив входных строк
        char *vowel = {"аеёиоуыэюя"}; // гласные буквы
        char *con = {"бвгджзйклмнпрстфхцчшщ"}; // согласные буквы
        char *sepWord; // текущее слово текущей строки
        char *conson; // хранит массив согласных
        char *zvSogl; // хранит набор звонких согласных букв
        char *glSogl; // хранит набор глугих согласных букв
        char tmp; // временная переменная для обмена двух значений
        zvSogl = (char *)calloc(20, sizeof(char));
        zvSogl[0] = 0;
        glSogl = (char *)calloc(20, sizeof(char));
        glSogl[0] = 0;
        conson = (char *)calloc(27, sizeof(char));
        strcpy(conson, con);
        printf("Введите количество строк: ");
        scanf("%d", &n);
// выделение памяти под массив строк
        s = (char **)calloc(n, sizeof(char*));
        for(i = 0; i < n; i++)
                s[i] = (char *)calloc(100, sizeof(char));
        fflush(stdin);
// ввод входных строк
        for(i = 0; i < n; i++)
        {
                printf("Введите %d - ую строку: ", i + 1);
                gets(s[i]);
        OemToAnsi(s[i],s[i]);
 
        }
        for(i = 0; i < n; i++)
        {
                sepWord = strtok(s[i], " "); // бъем текущую строку на слова
                while(sepWord)
                {
                        if(sepWord)
                        {
                                vowel = getVowel(vowel, sepWord);
                                conson = getCons(conson, sepWord);
                                zvSogl = getZvSogl(zvSogl, sepWord);
                                glSogl = getGlSogl(glSogl, sepWord);
                        }
                        sepWord = strtok('\0', " "); // переходим к новому слову
                }
        }
        printf("Гласные в каждом слове: %s\n", vowel);
        printf("Согласные, которые не входят ни в одно слово: %s\n", conson);
        for(i = 0; i < strlen(zvSogl); i++)
                for(j = 0; j < strlen(zvSogl) - 1; j++)
                        if(zvSogl[j] > zvSogl[j + 1])
                        {
                                tmp = zvSogl[j];
                                zvSogl[j] = zvSogl[j + 1];
                                zvSogl[j + 1] = tmp;
                        }
        printf("Звонкие согласные, входящие хотя бы в одно слово: %s\n", zvSogl);
        printf("Глухие согласные буквы, которые не входят хотя бы в одно слово: ");
        for(i = 0; i < strlen(gl); i++)
        {
                k = 0;
                for(j = 0; j < strlen(glSogl); j++)
                {
                        if(gl[i] == glSogl[j])
                                k = 1;
                }
                if(k == 0)
                        printf("%c", gl[i]);
        }
// освобождение памяти из под всех переменных
        for(i = 0; i < n; i++)
                free(s[i]);
        free(s);
        free(vowel);
        free(conson);
        free(zvSogl);
        free(glSogl);
        getch();
        return 0;
}


В литерном массиве строк содержится текст на русском языке,
состоящий из слов, разделенных пробелами. Напечатать в алфавитном
порядке:
1. все согласные буквы, которые не входят только в одно слово
2. все глухие согласные буквы, которые не входят только в одно
слово
3. все звонкие согласные буквы, которые входят более чем в одно
слово
4. все глухие согласные буквы, которые входят в каждое нечетное
слово и не входят хотя бы в одно четное слово.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2013, 20:06
Ответы с готовыми решениями:

Вставить в массив строк новый элемент, не нарушая алфавитный порядок
Добрый день. Нужно вставить в массив строку не нарушая его алфавитный порядок. Пытался это реализовать, находя индекс, по которому нужно...

Алфавитный порядок
Приветик друзья. Нужна ваша помощь. Столкнулась с задачкой впринципи не очень сложно, но имею трудности в написании её на QBasic(( ...

Алфавитный порядок
Салют форумчани!!!! У меня проблемка... Очень надо решить эту задачю на C#, а у меня с этим проблемы((( Зато я решил её на Паскале) ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2013, 20:06

Алфавитный порядок
Подскажите пожалуйста ,как сделать в форме имеется элемент список -как сделать чтобы выбор из него происходил в алфавитном порядке(что надо...

Алфавитный порядок
Нужно изменить строку так, чтобы каждый символ строки расположился в алфавитном порядке string s=&quot;tghur&quot;

Алфавитный порядок
Салют народ!!! Меня очень заинтересовала одна задачка, друг сказал, что она элементарная. Но мне почему-то так не кажется(( Учитывая...

Алфавитный порядок
СП, располагающую гласные буквы, встречающиеся одновременно в словах X и Y, в алфавитном порядке

Алфавитный порядок строки
Всем Доброго Времени Суток! Прошу помощи в решении задачи: Дан не пустой текст из заглавных русских букв, за которыми следует точка....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru