8 / 8 / 13
Регистрация: 31.10.2011
Сообщений: 294
1

Определить количество слов, которые содержат ровно четыре буквы "о", "О"

20.01.2013, 15:40. Показов 2045. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые содержат ровно четыре буквы "о".

Помогите, вот есть программа, но что то она не корректно работает... Если ввожу два слова с 4 буквами О, то оно выводит что 2 слова. А если ввожу например слово с двумя буквами О, а потом ввожу слово с 4 буквами О, то пишет что слов с 4 буквами О, - нету.

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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    int Ocount=0;
    int Wcount=0;
 
    char a='a';
    cout<<"Введите предложение - ";
    setlocale(LC_ALL,".866");
    do
    {
        a=getche();
 
        if (a==-82 || a==-114)
            Ocount++;
        if (Ocount==4)
            if (a==32 || a=='\r')
            {
                Wcount++;
                Ocount=0;
            }
    } while (a!='\r');
    setlocale(LC_ALL,"rus");
    cout<<"\nВ предложении "<<Wcount<<" слов(а) с 4-мя буквами \'О\' или \'о\'\n";
    getch();
    return 0;
}
0
20.01.2013, 15:40
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2013, 15:40
Ответы с готовыми решениями:

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

Дана строка, состоящая из русских слов. Найти количество слов, которые содержат ровно три буквы «А»
Дана строка, состоящая из русских слов. Найти количество слов, которые содержат ровно три буквы «А»

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

5
174 / 174 / 57
Регистрация: 08.01.2013
Сообщений: 335
20.01.2013, 17:02 2
я так понял, что у вас вводится символ, проверяется, если это "о" или "О" то Ocount++, и дальше если Ocount=4 и a==32 || a=='\r', то считаем что одно слово с 4 буквами "о" есть, и Ocount сбрасывается в ноль. Но если у вас в слове 2 буквы "о", то счетчик Ocount не сброситься, а следовательно, при вводе второго слова, он продолжит считать буквы "о", досчитает до 4, но тогда условие if (a==32 || a=='\r') не выполнится, и опять все по новой. У меня нет компилятора, поэтому проверить свое предположение не могу, но вы можете ввести 2 слова с двумя буквами "о", и если программа выдаст вам, что слов с 4-мя буквами - одно, то мое предположение верно, ну или в отладчике посмотреть, что там с Ocount происходит.

ЗЫ. Сорри если не совсем понятно высказал свою мысль
0
алкокодер
 Аватар для UnsKneD
157 / 153 / 41
Регистрация: 27.12.2012
Сообщений: 550
20.01.2013, 17:16 3
HelloInside,
Почему бы не обнулять счётчик после каждого пробела?

Добавлено через 8 минут
C++
1
if (a==32 || a==' ')
вместо
C++
1
if (a==32 || a=='\r')
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
20.01.2013, 17:16 4
Я бы так сделал. Если есть вопросы по коду, то задавай. Что бы брать текст от пользователя то надо юзать вайд стринг или, может быть, istringsteam.
Без разницы какие знаки между словами. Компилятор GNU GCC.
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
#include <iostream>
#include <set>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "");
    string text("автомотоэлектрооборудование», «договороспособность», «локомотивовагоноремонтный», «медно-свинцово-цинково-оловянный», «мотоснегоболотоход», «обороноспособность», «толково-словообразовательный», «электрофотополупроводниковый");
    text+=" ";
    string::size_type i(0);
    const char obig(*"О");
    const char osmall(*"о");
    unsigned count_words(0),count_o(0);
    while (text[i])
    {
        if (isalpha(text[i]) || text[i]==*"я" || text[i]==*"-")
        {
            if (text[i]==obig || text[i]==osmall)
                count_o++;
        }
 
        else
        {
            if (count_o>=4)
                count_words++;
            count_o=0;
        }
 
        i++;
    }
    cout<<"words with 4x o = "<<count_words;
    return 0;
}
0
52 / 41 / 16
Регистрация: 16.12.2012
Сообщений: 144
20.01.2013, 18:34 5
У меня есть вопрос по коду )
Что такое
C++
1
const char obig(*"О")
вот эта звездочка перед кавычками и почему кавычки двойные ?
Одинарные символы ведь в одинарных пишутся ...
1
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
20.01.2013, 18:41 6
Stanis, да, там надо записать
C++
1
 const char obig('О')
Просто char редко не часто использую.

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

В строке найти количество слов, которые содержат ровно три буквы «А»
Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество...

Определить количество слов, которые содержат ровно три буквы «А»
Здравствуйте, сегодня сыну задание в школе дали, написать на паскале программу, хотя до этого особо не объясняли. Сама в этом деле совсем...

Дан ряд из слов, разделенных пропусками. Определить количество слов, которые содержат ровно три буквы 'а'.
Дан ряд из слов, разделенных пропусками. Определить количество слов, которые содержат ровно три буквы 'а'. Как вывести количество слов...

Определить количество слов, которые содержат ровно три буквы "А"
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые содержат ровно...

Определить количество слов, которые содержат ровно три буквы "А"
помогите пожалуйста, написал программу по заданию: дана строка, состоящая из слов, разделенных пробелами ( одним или несколькими)....


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Ключевые слова Python
hw_wired 15.02.2025
Ключевые слова в Python - это специальные зарезервированные слова, которые имеют особое значение и функции в языке. В настоящее время Python включает 35 ключевых слов и 4 мягких ключевых слова. Эти. . .
Отличия изменяемых и неизменяемых типов в Python
hw_wired 15.02.2025
В Python существует принципиальное различие между изменяемыми (mutable) и неизменяемыми (immutable) типами данных, которое оказывает существенное влияние на работу программ. Это различие часто. . .
Python: сравнение списков и кортежей
hw_wired 15.02.2025
В Python последовательности являются одними из самых важных и часто используемых типов данных. Они позволяют хранить упорядоченные наборы элементов, к которым можно обращаться по индексу. Среди всех. . .
Как скачивать файлы с URL с помощью Python
hw_wired 15.02.2025
Для скачивания файлов Python предлагает как встроенные средства, так и сторонние библиотеки. Встроенный модуль urllib из стандартной библиотеки обеспечивает базовую функциональность для работы с URL. . .
Использование SQLAlchemy в Python
hw_wired 15.02.2025
SQLAlchemy - мощная библиотека для работы с базами данных в Python, которая предоставляет полноценный набор средств для объектно-реляционного отображения (ORM) и обширные возможности для работы с. . .
Взаимодействие с REST API в Python
hw_wired 15.02.2025
В современном мире разработки программного обеспечения REST API стал неотъемлемой частью архитектуры веб-приложений. API (Application Programming Interface) - это набор правил и протоколов,. . .
Разделение строк в Python
hw_wired 15.02.2025
Python предлагает богатый набор возможностей для работы со строками, и среди них разделение строк занимает особое место. Этот процесс позволяет разбивать текст на отдельные компоненты, что критично. . .
Объединение строк в Python
hw_wired 15.02.2025
При работе с текстовыми данными в Python нередко возникает необходимость объединять несколько строк в одну. Это может потребоваться при форматировании вывода, обработке текстовых файлов или создании. . .
Лучшие игровые движки на Python
hw_wired 15.02.2025
В последнее время разработка игр стала одним из самых популярных направлений программирования, и Python не остался в стороне от этого тренда. Несмотря на то, что Python обычно не ассоциируется с. . .
Декоратор jit в Python
hw_wired 15.02.2025
Если вы достаточно долго изучаете программы и пакеты на Python для машинного обучения, то наверняка замечали, что паттерн "JIT-декоратор" довольно популярен. Этот подход позволяет превратить обычные. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru