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

Найти в массиве все повторяющиеся последовательности - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа для нахождения определенного интеграла http://www.cyberforum.ru/cpp-beginners/thread690108.html
Помогите, написать программу для нахождения определенного интеграла с точностью Е = 10-3 для заданных границ с помощью трех методов: Прямоугольников. Трапеций. Симпсона. Границы: a = 0; b = √3; Сама функция:
C++ Не могу понять поставленой задачи Обьясните пожалуйста что нужно сделать?? Вычислить значение y в зависимости от выбранной функции от (x), аргумент которой определяется с поставленной условия. Возможные значения функции от (x): 2x, x2, х / 3 (в оконном приложении выбор выполнить с помощью компоненты RadioGroup). Предусмотреть вывод сообщений, показывающие, при которой условия и с какой функцией проводились вычисления у. Вот... http://www.cyberforum.ru/cpp-beginners/thread690105.html
Многопоточные консольные приложения C++
подскажите сайт\книжку где почитать (обязательно с примерами) про многопоточные приложения, и только с консольными примерами. в этой теме полный 0, но надо разобраться
C++ Указатели
Всем привет. Нам дали сделать лабу: Дана целочисленная прямоугольная матрица. 1) Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. 2) Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик. Вот готовый вариант. #include "stdafx.h"...
C++ Где нужно писать сообщение об ошибке, если ввели неправильное значение? http://www.cyberforum.ru/cpp-beginners/thread690045.html
простите за глупый вопрос, но где нужно писать сообщение об ошибке, если ввели неправильное значение, перепробовала кучу вариантов, никак do { cout<<"Enter data for transaction "<<count<<endl; cout<<"Number of shares:"<<endl; cin>>number_of_shares;} while (total_of_shares>number_of_shares); if (number_of_shares==0){ cout<<"Bye.Have a nice day."<<endl; break;}
C++ Перерисовка отдельного элемента в Canvas Здраствуйте, есть задача - написать игру змейка, соответственно есть поле Canvas на котором нанесено множество прямоугольников, и один "ползающий" прямоугольник, соответственно с каждым шагом таймера прямоугольник должен быть перерисован и появиться на новом месте. Вопрос - можно ли обойтись без перерисовки всего Canvas, а только отдельно взятой области движущегося прямоугольника? подробнее

Показать сообщение отдельно
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
06.11.2012, 19:34     Найти в массиве все повторяющиеся последовательности
Накропал я тут "монстра". Не знаю насколько это правильно, но вроде работает, но ты потестируй
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
 
using std::cin;
using std::cout;
 
int countOfRepeatedElements(int* arr, int sizeOfArray, int indexOfElement) 
{
    int countOfRepeatedElements = 0;
    for (int i = indexOfElement; i < sizeOfArray && (arr[indexOfElement] == arr[i]); i++)
    {
        countOfRepeatedElements++;
    }
    return countOfRepeatedElements;
}
 
int main(int argc, char* argv) 
{
    int sizeOfInitialArray;
    cout << "Enter size of array:";
    cin >> sizeOfInitialArray;
 
    int* initialArray = new int[sizeOfInitialArray];
    cout << "Enter elements of array:" << '\n';
    for (int i = 0; i < sizeOfInitialArray; i++) 
    {
        cin >> initialArray[i];
    }
 
    int countOfSequences = 0;
    for (int i = 0; i < sizeOfInitialArray;)
    {
        i += countOfRepeatedElements(initialArray, sizeOfInitialArray, i);      
        countOfSequences++;
    }
 
    int* newArray = new int[2 * countOfSequences];
    for (int i = 0, j = 0; i < 2 * countOfSequences; i += 2)
    {
        newArray[i] = initialArray[j];
        newArray[i + 1] = countOfRepeatedElements(initialArray, sizeOfInitialArray, j);
        j += countOfRepeatedElements(initialArray, sizeOfInitialArray, j);
    }
 
    cout << "New array:" << '\n';
    for (int i = 0; i < 2 * countOfSequences; i++) 
    {
        cout << newArray[i] << "  ";
    }
 
    int maxLength = newArray[1];
    for (int i = 1; i < 2 * countOfSequences; i += 2) 
    {
        if (newArray[i] > maxLength) 
        {
            maxLength = newArray[i];
        }
    }
 
    cout << '\n' << "Pairs:" << '\n';
    for (int i = 1; i <= maxLength; i++) 
    {
        int countOfSequencesWithCertainLength;
        countOfSequencesWithCertainLength = 0;
        for (int j = 1; j < 2 * countOfSequences; j += 2)
        {
            
            if (i == newArray[j])
            {
                countOfSequencesWithCertainLength++;
            }
        }
        cout << i << "  -  " << countOfSequencesWithCertainLength << '\n';
    }
 
    return 0;
}
 
Текущее время: 16:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru