Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
S.T.A.L.K.E.R.2
0 / 0 / 0
Регистрация: 04.09.2010
Сообщений: 51
#1

Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков - C++

27.05.2017, 12:56. Просмотров 126. Ответов 1
Метки нет (Все метки)

Помогите!Программа не работает.
Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +,-,*. Группой букв будем называть такую совокупность последовательно расположенных букв, которой непосредственно не предшествует и за которой непосредственно не следует буква. Аналогично определим группу цифр и группу знаков. Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков.

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
#include <iostream>
#include <string>
#include <cstring>
 
enum Sym {Latter, Digit, Operator, Undef};
 
int main()
{   
    std::string str;
    std::getline(std::cin, str); 
 
    int count[3] = {0};
    Sym sym      = Sym::Undef;
 
    for (char c : str)
    {
        if (std::islower(c))
        {
            if (sym != Sym::Latter)
            {
                sym = Sym::Latter;               
                ++count[sym];
            }
        }
        else if (std::isdigit(c))
        {
            if (sym != Sym::Digit)
            {
                sym = Sym::Digit;              
                ++count[sym];            
            }
        }
        else if (std::strchr("+-*", c))
        {
             if (sym != Sym::Operator)
             {
                 sym = Sym::Operator;               
                 ++count[sym];
             }
        }
        else
        {
            std::cerr << "Недопустимый символ '" << c << "'" << std::endl;
            return 1;
        }       
    }
 
    std::cout << "Групп букв: "     << count[Sym::Latter]
              << "\nГрупп цифр: "   << count[Sym::Digit]
              << "\nГрупп знаков: " << count[Sym::Operator]
              << "\nЧисло групп букв превышает число групп знаков: "
              << (count[Sym::Latter] > count[Sym::Operator] ? "да" : "нет") 
              << std::endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2017, 12:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков (C++):

Выяснить, верно ли, что в данном тексте больше групп букв, чем групп знаков - C++
Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +,-,*. Группой букв будем называть такую совокупность...

Определить, каких букв — гласных или согласных — больше в данном тексте - C++
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв — гласных или согласных — больше в этом...

Дана строка, состоящая из групп нулей и единиц.Найти количество групп с пятью символами - C++
Дана строка, состоящая из групп нулей и единиц. Каждая группа отделяется от другой одним или несколькими пробелами. Найти количество групп...

Выяснить, верно ли, что в последовательности имеются пять идущих подряд букв е - C++
Условия: Даны натуральное число n, символы s1, …, sn. Выяснить, верно ли, что в последовательности s1, …, sn имеются пять идущих подряд...

Есть строка, состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на экран групп - C++
Есть строка, состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на...

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

1
S.T.A.L.K.E.R.2
0 / 0 / 0
Регистрация: 04.09.2010
Сообщений: 51
05.06.2017, 17:41  [ТС] #2
Объясните,пожалуйста,задачу.
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
#include <iostream>
#include <string>
#include <stdio.h>
#include <ctype.h>
using namespace std; 
int letter = 0, letterWord = 0;
int symbol = 0, symbolWord = 0;
void LastWord(void)
{
   if ( letterWord != 0 ) { letterWord = 0; letter++; }
   else if ( symbolWord != 0 ) { symbolWord = 0; symbol++; }
}
int main(void)
{
   setlocale(LC_ALL, "Russian");
   string text = "This is a +++ string of --- sort ";  
   for( unsigned int i = 0; i < text.length(); i++ )
   {
       if ( text[i] == '*'|| text[i] == '-'|| text[i] == '+' )
       {
          if ( symbolWord == 0 )
          {
             LastWord();
             symbolWord = 1;
          }
       }
       else if ( islower( text[i] ) )
       {
          if ( letterWord == 0 )
          {
             LastWord();
             letterWord = 1;
          }
       }
   }
   LastWord(); 
   printf("Количество групп букв = %d\n", letter);
   printf("Количество групп знаков = %d\n", symbol);
   if( letter > symbol ) { printf("В данном тексте больше групп букв, чем групп знаков\n"); }
   else if ( letter == symbol ) { printf("В данном тексте одинаковое количество групп букв и групп знаков\n"); }
   else { printf("В данном тексте групп букв меньше, чем групп знаков\n"); }
   return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2017, 17:41
Привет! Вот еще темы с ответами:

Верно ли то,что в последовательности больше отрицательных членов, чем положительных - C++
Дано натуральные числа N,a1,a2,...an. Верно ли то,что в последовательности больше отрицательных членов, чем положительных

Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков - C++
Дана последовательность состоящая из цифр, букв и знаков пунктуации в произвольном порядке. Подсчитать чего больше и составить строки...

Определить сколько заданных групп символов содержится в тексте - C++
Задано определенное кол-во конкретных сочетаний букв (например: УЩ, ЮЩ и др) Определить сколько таких групп символов содержится в тексте,...

Верно ли, что в данном числе нет данной цифры Н - C++
Дано натуральное число Т. Верно ли, что в данном числе нет данной цифры Н. можно полны текст программы заранее спасибо)


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru