Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 19

Найти слова, которые удовлетворяют условию: длина слов максимальна

14.12.2011, 16:32. Показов 1232. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача на Си:
Дана не пустая последовательность слов (не более 50), в каждом слове не больше 8 символов. Слова разделены пробелами, за последним словом стоит точка. Найти слова, которые удовлетворяют условию: длина слов максимальна.

Вот что написал:
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 9 
#define M 50
 
void main(){
 
int z, max=0;
 
char ch = ' ', a[M][N], d[M][N];
int i=0, j=0, t=0;
 
while (ch!= '.')
{
    scanf_s("%c", &ch);
 
    while (ch != ' ' && ch != '.')
    {
        a[i][j] = ch;
        j++;
        scanf("%c", &ch);
    }
    a[i][j]='\0'; 
    i++;
    j=0;
}
 
z = strlen (a[j]);
 
t = 0;
i=0;
while (a[i] != '\0'){
    if (z>max){
        max = z;
        t=1;
        d[t] = a[i];
    } else if (z == max){
        t = t+1;
        d[t] = a[i];
    }
    i++;
}
 
}
ругается в этих местах: d[t] = a[i]
error C2106: '=' : left operand must be l-value
Что делаю не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2011, 16:32
Ответы с готовыми решениями:

Найти те слова, которые отличаются от последнего слова и длина слов максимальная
Дана непустая последовательность слов (не более 50), в каждом слове не более восьми символов. Слова разделены пробелом, за последним словом...

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

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

7
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.12.2011, 16:35
Цитата Сообщение от Antojkee Посмотреть сообщение
Что делаю не так?
d - двумерный массив, Вы к нему обращаетесь как к одномерному. d[i] в данном случае будет указатель, а d[i][j] - символ.
Цитата Сообщение от Antojkee Посмотреть сообщение
a[i] != '\0'
Всегда истинно. По той же причине.
0
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 19
14.12.2011, 16:51  [ТС]
Цитата Сообщение от fasked Посмотреть сообщение
d - двумерный массив, Вы к нему обращаетесь как к одномерному. d[i] в данном случае будет указатель, а d[i][j] - символ.

Всегда истинно. По той же причине.
Как тогда всю строку из одного двумерного массива присвоить другому?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.12.2011, 16:56
Цитата Сообщение от Antojkee Посмотреть сообщение
Как тогда всю строку из одного двумерного массива присвоить другому?
Используйте функцию strcpy
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 19
14.12.2011, 21:33  [ТС]
Цитата Сообщение от fasked Посмотреть сообщение
Используйте функцию strcpy
исправил на strcpy (d[t], a[i]);

программа запускается, но выдает ошибку в процессе работы:
Unhandled exception at 0x0100107d in laba4.exe: 0xC0000005: Access violation writing location 0x00000000.
Добавлено через 4 часа 20 минут
Вроде бы всё исправил, кроме этого:
Цитата Сообщение от fasked Посмотреть сообщение
a[i] != '\0'
Всегда истинно. По той же причине.
Как это исправить? тоже через какую-то функцию?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
14.12.2011, 21:45
Цитата Сообщение от fasked Посмотреть сообщение
Используйте функцию strcpy
И как же с двумерными массивами?
Цитата Сообщение от Antojkee Посмотреть сообщение
исправил на strcpy (d[t], a[i]);
программа запускается, но выдает ошибку в процессе работы:
Используйте strncpy...

Добавлено через 4 минуты
А вообще лучше так
C
1
2
3
4
5
6
7
8
char *A[N];
char buf[BUFSIZ];
 
for ( i = 0 ; i < N ; ++i )
{
        fgets (buf, BUFSIZ, stdin);
        A[i] = strdup (buf);
}
1
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 19
14.12.2011, 23:37  [ТС]
В общем, написал
Возможно кому-нибудь попадётся подобная или такая же задачка.

Решение:

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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 8
#define M 50
 
void main(){
 
int max=0;
 
char ch = ' ', a[M][N], d[50][N];
int i=0, j=0, t=0,k;
 
while (ch!= '.')
{
    scanf("%c", &ch);
 
    while (ch != ' ' && ch != '.')
    {
        a[i][j] = ch;
        j++;
        scanf("%c", &ch);
    }
    a[i][j]='\0'; 
    i++;
    j=0;
}
k = i-1;
max = 0;
i=0;
 
while (i <= k){
    if ((strstr(a[i],a[k])) == NULL){
        if ( strlen (a[i]) > max ){
            max = strlen (a[i]) ;   
            t=0;
            strcpy (d[t], a[i]);
        } else if (strlen (a[i]) == max){
            t = t+1;
            strcpy (d[t], a[i]);
        }
    }
    i++;
}
 
k=t;
 
for (t = 0; t <= k; t++ ) puts(d[t]);
 
_getch();
}
Всем спасибо за помощь
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
15.12.2011, 02:13
Цитата Сообщение от go Посмотреть сообщение
И как же с двумерными массивами?
Прошу прощения, не понял вопроса В цикле само собой.
Тут кстати массив статический, можно вообще одним memcpy всю таблицу кинуть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2011, 02:13

Найти слова отличающиеся от последнего и длина слова максимальна
Дана непустая последовательность слов (не более 50), в каждом слове не более восьми символов. Слова разделены пробелом, за последним словом...

Строки. Напечатать слова, длина которых максимальна
Спасибо заранее за помощь

Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству
Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству в слове Нет повторяющихся букв

Найти среднюю длину слов и удалить из текста все слова длина, которых меньше найденного значения
Найти среднюю длину слов и удалить из текста все слова длина, которых меньше найденного значения. Количество слов уже нашёл, а вот как...

Даны три слова. Напечатать те буквы слов, которые есть в одном из слов
Условие: Даны три слова. Напечатать только те буквы слов, которые есть только в одном из слов. *Повторяющиеся буквы каждого слова...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru