Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/54: Рейтинг темы: голосов - 54, средняя оценка - 4.94
1 / 1 / 1
Регистрация: 26.11.2011
Сообщений: 33

Вывести все слова, в которых есть буква "a"

29.11.2011, 17:37. Показов 12369. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не могу найти ошибку
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
int i=0,j=0,a=0,schet=0;
char s[50],s1[50];
     cin.getline(s,50);
             while(i<50)
{
                        if((isspace(s[i])) && (isalnum(s[i-1])))
{    
     j=i-1;schet=0;
             while((!isspace(s[j])) || (s[j]=='\n'))
{    
     j--;
                        if(s[j]=='a')
     schet++;
     }
             for(j;j<i+1;j++)
{
                        if(schet>=1)
     s1[j]=s[j];
}
 
}
    i++;
}cout<<s1<<endl;
getch();
нужно вывести все слова в которых есть буква a

Добавлено через 2 часа 30 минут
помогите пожалуйста...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.11.2011, 17:37
Ответы с готовыми решениями:

Найти все и вывести все слова в которых есть буква "к"
дана строка (ввод с клавы) найти все и вывести все слова в которых есть буква &quot;к&quot;!!!!!!!!!!!!!!!!!!!!!!(разделители между словами...

Вывести слова из предложения, в которых есть буква, встречающийся четыре и более раз
Задачка по С++. С клавиатуры ввести предложения. Напечатать те слова из введенного предложения, в которых есть хотя бы одна буква...

Вывести на экран все слова из К букв, в которых буква Ы встречается более 1 раза, и подсчитать их количество
1)Алфавит языка племени &quot;тумба-юмба&quot; состоит из букв Ы, Ц, Щ и О. Число K вводится с клавиатуры. Вывести на экран все слова из К букв, в...

69
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
30.11.2011, 01:35
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от fasked Посмотреть сообщение
но разбираться, если честно, лень
та же беда
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.11.2011, 16:26
Цитата Сообщение от alkagolik Посмотреть сообщение
самообман. При расчете сложности не учитана сложность сортировки. Реально задача реализуется сравнением каждого байта массива s. Можно конечно (и нужно) оптимизировать под наиболее вероятные случаи, но сути это не меняет.
Все учитано, мы же рассматриваем O-большое. При этом сложность подсчитана для среднего случая. Итак, мы остановились пока на алгоритме сложностью O(nlog(m))

Добавлено через 8 часов 56 минут
fasked,alkagolik, ну так что, выкладывать алгоритм сложностью m+n?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 16:30
Цитата Сообщение от Thinker Посмотреть сообщение
ну так что, выкладывать алгоритм сложностью m+n?
Давно пора
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.11.2011, 16:30
Итак, сложность данного алгоритма m+n:
C
1
2
3
4
5
6
7
8
9
10
int Count(char *s, char *set)
{
    int i, count = 0, set_flag[256] = {0};
    for(i = 0; set[i]; i++)
         set_flag[set[i]] = 1;
    for(i = 0; s[i]; i++)
        if (set_flag[s[i]])
            count++;
    return count;
}
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 16:52
Thinker, думал об этом, но отбросил мысль до вопроса "о сферических символах" Для остальных типов данных не подойдет.
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.11.2011, 16:54
Цитата Сообщение от fasked Посмотреть сообщение
Для остальных типов данных не подойдет.
А нам и не нужны другие типы данных в данной задаче А метод хорош и очень быстр! Можно сделать с арифметикой указателей, но принцип тот же остается
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
30.11.2011, 17:09
Thinker, и раз уж на то пошло, то массив флагов можно объявить как char set_flag[256]. 4 байта не нужно для хранения одного бита. Минимум что мы можем предоставить это 1 байт. Молодец
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.11.2011, 17:20
alkagolik, ну int или char это переделать легко, главное скорость удалась
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
30.11.2011, 17:24
Мне в таком случае больше по душе такая реализация, без сравнений:
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
#include <stdio.h>
 
size_t *make_histo(char *s, size_t *histo)
{   
    while (*s)
        ++histo[*s++];
        
    return histo;
}
 
size_t count(char *set, size_t *histo)
{
   size_t cnt = 0;
   
   while (*set) {
      cnt += histo[*set++];
   }
   
   return cnt;
}
 
int main() {
   size_t histo[256] = { 0 };
   size_t cnt = 0;
   
   cnt = count("da", make_histo("abcdefabcdefabcdef", histo));
   printf("%u ", cnt);
   
   return 0;
}
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.11.2011, 17:39
fasked, согласен, и в моем алгоритме тоже можно написать count += set_flag[s[i]] и работать адресной с арифметикой, но моя цель была показать направление в сторону быстрого алгоритма. За счет узкого диапазона значений и удалось так сделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2011, 17:39
Помогаю со студенческими работами здесь

Рекурсия. Вывести на экран все слова из k букв, в которых буква Ы встречается больше 1 раза и посчитать их кол-во.
Алфавит языка племени &quot;тумба-юмба&quot; состоит из букв Ы, Ц, Щ и О. Число k вводится с клавиатуры. 1) Вывести на экран все слова из k...

Что здесь неправильно? (Вывести все слова строки в которых первая буква входит в него ещё раз)
Задание: Вывести все слова строки в которых первая буква входит в него ещё раз. #include &lt;iostream&gt; #include &lt;string&gt;...

Даны буква и текст заканчивающийся точкой. Вывести слова в которых эта буква встречается наибольшее количество раз
Даны буква и текст заканчивающийся точкой. Вывести слова в которых эта буква встречается наибольшее количество раз. Если их несколько...

Вывести все слова, в которых первая буква "а"
Вывести все слова, в которых первая буква &quot;а&quot;. Нужно сделать через посимвольную обработку. Не получается вывести слова int...

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


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

Или воспользуйтесь поиском по форуму:
70
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru