Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/56: Рейтинг темы: голосов - 56, средняя оценка - 4.52
3 / 3 / 0
Регистрация: 15.02.2012
Сообщений: 56
1

Подсчитать наибольшее количество идущих подряд пробелов

11.03.2012, 20:06. Показов 11468. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны натуральное число n, символы S1, .... Sn .
а) Подсчитать наибольшее количество идущих подряд пробелов;
б) Выяснить, верно ли, что в последовательности S1, .... Sn имеются пять идущих подряд букв е.
Решите на С++.Спасибо заранее.

Добавлено через 22 часа 25 минут
Число символов в строке не вносит в исходные данные задачи, но предполагается, что оно не превосходит максимально допустимой длины строки в используемом языке программирования.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2012, 20:06
Ответы с готовыми решениями:

Подсчитать наибольшее количество идущих подряд пробелов
#include "stdafx.h" #include "iostream" #include "iomanip" int main() { setlocale...

Подсчитать наибольшее количество идущих подряд пробелов
Подсчитать наибольшее количество идущих подряд пробелов...

Подсчитать наибольшее количество идущих подряд пробелов
дана строка. подсчитать наибольшее количество идущих подряд пробелов

Подсчитать наибольшее количество идущих подряд пробелов в строке
Здраствуйте, помогите написать код к такой задаче: Дана строка символов S. а) Подсчитать...

6
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
11.03.2012, 20:19 2
Но ведь это слишком лёгкие задачки, давайте сюда ваши наработки чтоль, ато мне кажется что вы и не пытались эти задания делать.
1
3 / 3 / 0
Регистрация: 15.02.2012
Сообщений: 56
12.03.2012, 06:32  [ТС] 3
я не умею. Поэтому прошу вас помочь. Смотря на коды,я что-то пытаюсь усвоить.Помогите если не трудно.

Добавлено через 10 часов 8 минут
2 условия должны быть в одной программе
1
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
12.03.2012, 14:57 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
33
34
35
#include <iostream>
using namespace std;
 
int main()
{
    const int n=25;
    int countSpace=0;
    int countTemp=0;
    char ar[n]; //массив символов
 
    //скопируем тестовую строку, максимум пробелов подряд = 3
    strncpy(ar,"some   string",n);
 
    cout<<"String is:\""<<ar<<"\"\n";
 
    for(int i=0;i<n;i++)
    {
        //если попался хоть один пробел
        if(ar[i]==' ')
        {
            countTemp=1;
 
            //пока ещё есть рядом пробелы увеличиваем счётчик
            while(ar[i] && ar[++i]==' ')
             countTemp++;
 
            //заносим в countSpace новое число пробелов только
            //если оно больше того что было до этого
            countSpace=max(countTemp,countSpace);
        }
    }
    cout<<"countSpace= "<<countSpace<<endl;
 
    return 0;
}
Вот вы сможете её объяснить преподавателю? Если нет то садитесь за книгу и пытайтесь написать свой вариант, а если будут встречаться ошибки - пишите здесь код и я постараюсь помочь их убрать.
2
44 / 37 / 6
Регистрация: 30.07.2008
Сообщений: 136
12.03.2012, 15:38 5
Реализация с помощью конечного автомата.
Состояния автомата:
state 0 чтение символов
state 1 чтение пробелов
state 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
44
45
46
47
48
49
50
51
52
 
int state; // состояние автомата
int max; // максимальное количество пробелов
int i; // количество пробелов
int j; // количество символов 'e'
int fl; // флаговая переменная наличия 5 символов 'e'
state = 0; // начальное состояние, вне пробелов
 
switch (state) // проверка состояния автомата
{
  case 0:
    switch (Si) // цикл по S1..sn
      {
      case 'e': // переход в состояние e
        j = 1; // количество подряд идущих 'e'
        state = 2;
        break;
      case ' ':
        i = 1;
        state = 1;
        break;
      default:
        break;
      }
    break;
  case 1:
   switch (Si)
     {
       case ' ':
         i++;
         break;
       default:
         if (max<i) max = i;
         state = 0; 
         i = 0;
         break;
     }
   break;
  case 2:
   switch (Si)
     {
       case 'e':
         j++;
         break;
       default:
         if (j>=5) fl = 1; //в последовательности имеется 5 и более 'e' 
         state = 0;
         j = 0;
         break;
     }
   break;
}
1
3 / 3 / 0
Регистрация: 15.02.2012
Сообщений: 56
13.03.2012, 00:06  [ТС] 6
спасибо большое. я учту все ваши советы, и попытаюсь сама все сделать.но пока у меня просто поджимает время.
0
3 / 3 / 0
Регистрация: 15.02.2012
Сообщений: 56
15.03.2012, 02:40  [ТС] 7
Программа не работает.
0
15.03.2012, 02:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2012, 02:40
Помогаю со студенческими работами здесь

Подсчитать наибольшее количество подряд идущих пробелов в тексте
С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не...

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

В строке посчитать наибольшее количество идущих подряд пробелов
В строке посчитать наибольшее количество идущих подряд пробелов

Дано предложение. Определите наибольшее количество идущих подряд пробелов
Дано предложение. Определите наибольшее количество идущих подряд пробелов.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru