Форум программистов, компьютерный форум CyberForum.ru

Определить, входит ли в массив последовательность символов 123 - C++

Восстановить пароль Регистрация
 
Дост
1 / 1 / 0
Регистрация: 05.02.2010
Сообщений: 31
09.02.2010, 10:32     Определить, входит ли в массив последовательность символов 123 #1
Задан массив (VAR А : ARRAY [ 1. . N ] OF ' 0 ' . . ' 9 '; ). Определить, входит ли в него последовательность символов 123, если да, то сколько раз и с каких позиций (N > 3).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 10:32     Определить, входит ли в массив последовательность символов 123
Посмотрите здесь:

C++ Определить наибольшую последовательность отличных от пробелов символов
Выяснить, входит ли в последовательность S1 ,. . ., Sm буква Ю C++
Выяснить, сколько чисел входит в последовательность по одному разу C++
Определить, является ли заданная последовательность символов арифметическим выражением C++
Символьный тип данных, выяснить входит ли в последовательность s1, s2, …, sn буква j C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.02.2010, 10:57     Определить, входит ли в массив последовательность символов 123 #2
а что за язык? С-- ?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
09.02.2010, 11:52     Определить, входит ли в массив последовательность символов 123 #3
Надеюсь не Java
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
09.02.2010, 12:09     Определить, входит ли в массив последовательность символов 123 #4
Дост, тебе на паскале надо или на С?
Дост
1 / 1 / 0
Регистрация: 05.02.2010
Сообщений: 31
09.02.2010, 14:21  [ТС]     Определить, входит ли в массив последовательность символов 123 #5
на с++!

Добавлено через 38 секунд
на С++

Добавлено через 15 секунд
на С++

Добавлено через 14 минут
Да
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.02.2010, 15:21     Определить, входит ли в массив последовательность символов 123 #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 <vector>
#include <ctime>
using namespace std;
 
vector<int> occ(char *str)
{
    vector<int> result;
    int count=0;
    int offset;
    char const *begin=str;
    char *substr="123";
    char *temp;
    while(temp=strstr(str, substr))
    {
        count++;
        offset=temp-begin;
        result.push_back(offset);
        str=str+3;
    }
    result.push_back(count);
    return result;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int n;
    cout << "Введите N: ";
    cin >> n;
    char *arr=new char[n+1];
    /* Чтобы сгенерировать массив
    srand(time(0));
    for(int i=0; i<n; i++)
        itoa(rand()%10, (arr+i), 10);*/
 
    for(int i=0; i<n; i++)
        cin >> arr[i];
    arr[n]='\0';
    cout << arr << endl;
    vector<int> res=occ(arr);
    if(res.size()!=0)
    {
        cout << "Число совпадений: " << res[res.size()-1] << endl;
        for(int i=0; i<res.size()-1; ++i)
            cout << res[i] << endl;
    }
    else
        cout << "Cовпадений нет" << endl;
 
    system("pause");
    return 0;
}
Индексация возвращаемых позиций начинается с нуля, последний элемент вектора - число совпадений
Дост
1 / 1 / 0
Регистрация: 05.02.2010
Сообщений: 31
10.02.2010, 10:12  [ТС]     Определить, входит ли в массив последовательность символов 123 #7
Большое спасибо!,но здесь много того чего мы не проходили на парах,а по проще никак???
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
10.02.2010, 11:51     Определить, входит ли в массив последовательность символов 123 #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Кстати, у меня в предыдущем примере ошибка - забыл высвободить память. Перед 53 строкой нужно вставить следующий код:
C++
1
    delete[] arr;
Цитата Сообщение от Дост Посмотреть сообщение
Большое спасибо!,но здесь много того чего мы не проходили на парах,а по проще никак???
Попроще можно сделать так:
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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    const int N=9; //Число элементов массива
    int arr[N];//Сам массив
    int occ[N];//Массив, хранящий позиции вхождений
    int s=0;
 
    for(int i=0; i<N; ++i)
    {
        do
        {
            cout << "Введите элемент №" << i+1 << ": ";
            cin >> arr[i];
        }
        while((arr[i]>9)||(arr[i]<0));
    }
 
    for(int i=0; i<N-2; ++i)
        if((arr[i]==1)&&(arr[i+1]==2)&&(arr[i+2]==3))
        {
            occ[s]=i;
            ++s;
        }
 
    if(s==0)
        cout << "Вхождений не найдено" << endl;
    else
    {
        cout << "Найдено " << s << " вхождений:" << endl;
        for(int i=0; i<s; ++i)
            cout << occ[i] << endl;
    }
 
    system("pause");
    return 0;
}
Дост
1 / 1 / 0
Регистрация: 05.02.2010
Сообщений: 31
10.02.2010, 14:56  [ТС]     Определить, входит ли в массив последовательность символов 123 #9
Nameless One большое тебе спасибо!!! но что значит:
1.using namespace std;
2.setlocale(LC_ALL, "Russian");
3.system("pause");
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
10.02.2010, 16:30     Определить, входит ли в массив последовательность символов 123 #10
Цитата Сообщение от Дост Посмотреть сообщение
Nameless One большое тебе спасибо!!! но что значит:
1.using namespace std;
2.setlocale(LC_ALL, "Russian");
3.system("pause");
  1. Здесь используется пространство имен std, в котором определены имена cout, cin, endl, и многие другие.
    Если не писать эту строчку, тогда вывод переменной будет выглядеть так (используется оператор :: - оператор уточнения области видимости):
    C++
    1
    
    std::cout << s << std::endl;
  2. Устанавливается локаль для ввода-вывода русских букв
  3. Работа программы приостанавливается, ожидается реакция пользователя. Если ты запустишь программу без этого, то после выполнения она сразу же закроется, и ты не успеешь посмотреть результаты работы. А так она закроется только тогда, когда ты нажмешь на любую клавишу


MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2010, 16:39     Определить, входит ли в массив последовательность символов 123
Еще ссылки по теме:

C++ Дана последовательность символов. Определить в ней символ, который по алфавиту предшествует другим
C++ Сколько раз число входит в последовательность
C++ Определить, входит ли в массив заданная последовательность символов

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

Или воспользуйтесь поиском по форуму:
Дост
1 / 1 / 0
Регистрация: 05.02.2010
Сообщений: 31
10.02.2010, 16:39  [ТС]     Определить, входит ли в массив последовательность символов 123 #11
Теперь все понял!!! Спасибо!
Yandex
Объявления
10.02.2010, 16:39     Определить, входит ли в массив последовательность символов 123
Ответ Создать тему
Опции темы

Текущее время: 03:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru