0 / 0 / 0
Регистрация: 09.12.2024
Сообщений: 7

Найти слова, у котоpых пеpвая и последняя буквы одинаковые

14.12.2024, 17:48. Показов 3076. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Помогите пожалуйста. Задание: Дана строка символов. Признак конца строки – символ '\n'
(перевод строки). Строка состоит из слов, pазделенных пpобелами. Вывести:
а) слова, у котоpых пеpвая и последняя буквы одинаковые, и
количество таких слов;
код:
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
#include <iostream>
#include <string>
#define DLSL 80 // максимальная длина слова
 
int main() 
{
    char s; // текущий символ
    char sl[DLSL]; // текущее слово
    int i, j; // индексы текущего символа в слове
    int count = 0; // счетчик слов с одинаковыми первой и последней буквой
    setlocale(LC_ALL, "Rus");
    printf("\nВведите строку символов:\n");
    s = getchar();
 
    while (s != '\n') 
    {
        if (s == ' ') 
        {
            s = getchar(); // пропускаем пробелы
        }
        else 
        {
            i = 0;
            do 
            {
                sl[i++] = s; // заполняем текущее слово
                s = getchar();
            } 
            while ((s != ' ') && (s != '\n') && (i < DLSL)); // проверяем конец слова и длину
   
            // Проверяем, если слово состоит из более чем 1 символа
            if (i > 1) 
            {
                // Проверяем, равны ли первая и последняя буквы
                if (sl[0] == sl[i - 1]) 
                {
                    if (count == 0) // если это первое слово с одинаковыми буквами
                    { 
                        printf("Слова, у которых первая и последняя буквы одинаковые:\n");
                    }
                    for (j = 0; j < i; j++) 
                    {
                        putchar(sl[j]); // выводим слово
                    }
                    putchar(' ');
                    count++; // увеличиваем счетчик
                }
            }
        }
    }
 
    if (count == 0) 
    {
        printf("Слов с одинаковыми первой и последней буквами нет.\n");
    }
    else 
    {
        printf("\nКоличество таких слов: %d\n", count);
    }
 
    return 0;
}
Ну так вот моя проблема: выводится как то непонятно.
Введите строку символов:
алиса
Слова, у которых первая и последняя буквы одинаковые:
 <Ёб 
Количество таких слов: 1

помогите кто чем сможет. почему выводит <Ёб, не могу понять
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.12.2024, 17:48
Ответы с готовыми решениями:

Найти слова, у которых первая и последняя буквы одинаковые
Дана строка символов. Признак конца строки - символ «\п» (перевод строки). Строка состоит из слов, разделенных пробелами. а) Вывести...

Вывести слова в строке ДО слова, у которого одинаковые первая и последняя буквы
С клавиатуры вводится строка, надо вывести все слова до слова, у которого одинаковые первая и последняя буквы. Проблема в том, что я не...

Вывести все слова у которых первая и последняя буквы одинаковые
Вывести все слова у которых первая и последняя буквы одинаковые

24
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
27.12.2024, 23:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от zss Посмотреть сообщение
C++
1
while (cin >> w && cin.get()!='\n')
так не выведется последнее слово
2
 Аватар для andrey_f
885 / 538 / 230
Регистрация: 21.02.2011
Сообщений: 5,705
28.12.2024, 09:40
Цитата Сообщение от dalekobegu Посмотреть сообщение
помогите кто чем сможет. почему выводит <Ёб, не могу понять
вы не инициализируете массив sl
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
28.12.2024, 12:59
Цитата Сообщение от andreyfreelans Посмотреть сообщение
вы не инициализируете массив sl
Инициализирует, вот здесь:
Цитата Сообщение от dalekobegu Посмотреть сообщение
sl[i++] = s; // заполняем текущее слово
1
 Аватар для andrey_f
885 / 538 / 230
Регистрация: 21.02.2011
Сообщений: 5,705
01.01.2025, 12:38
Цитата Сообщение от zss Посмотреть сообщение
Инициализирует, вот здесь:
а для остальных значений?
намек был на
C++
1
sl[i] = '\0';
после
C++
1
while ((s != ' ') && (s != '\n') && (i < DLSL)); // проверяем конец слова и длину
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
01.01.2025, 14:51
Цитата Сообщение от andreyfreelans Посмотреть сообщение
намек был на
В данном конкретном случае никак не проверяется (и не используется) наличие терминального нуля.
Нужна только проверка
Цитата Сообщение от dalekobegu Посмотреть сообщение
sl[0] == sl[i - 1]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.01.2025, 14:51

Вывести все слова, у которых первая и последняя буквы одинаковые
Дана строка. Вывести все слова, у которых первая и последняя буквы одинаковые не используя стандартные средства для разбиения строк.

Строка: Вывести все слова, у которых первая и последняя буквы одинаковые
Дана строка, вывести все слова, у которых первая и последняя буквы одинаковые. Решите в делфи.

Вывести все слова cтроки, у которых первая и последняя буквы одинаковые
Дана строка. Вывести все слова, у которых первая и последняя буквы одинаковые

Вывести слова, у которых первая и последняя буквы одинаковые, и количество таких слов
Дана строка символов. Строка состоит из слов, разделенных пробелами. Вывести: слова, у которых первая и последняя буквы одинаковые, и...

Найти в строке слова, у которых первая и последняя буквы - гласные
Найти слова, у которых первая и последняя-гласные буквы.


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

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

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru