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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отличие указателя от массива http://www.cyberforum.ru/cpp-beginners/thread1496151.html
Чем отличается wchar_t* strDelimit = L" "; от wchar_t strDelimit = L" "; Понятно что одно указатель, а второе массив, но на практике одно и тоже?
C++ Лишние символы в конце строки, записанной в файл Записываю текст в бинарный файл, но в файле нет каракуль а этот же текст. И плюс к тексту добавляться левые символы. (смотреть рисунок) #include #include using namespace std; void main() {... http://www.cyberforum.ru/cpp-beginners/thread1496111.html
По описанию пути к кладу определить точные координаты клада C++
Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "North 5", где слово – одно из "North", "South", "East", "West", – задает...
C++ Отсортировать первую треть (или две трети) массива в порядке возрастания, остальную часть - развернуть
Здравствуйте, у меня тут такая задача, я что-то уже совсем запуталась с ней, Необходимо отсортировать первые две трети массива в порядке возрастания если среднее арифметическое всех элементов больше...
C++ Сдвинуть элементы на одну позицию вправо\влево http://www.cyberforum.ru/cpp-beginners/thread1496029.html
Ребята помогите пожалуйста с решением задачи на с++ : Сдвинуть элементы на одну позицию вправо\влево.
C++ Тело лямбды. Двумерный массив Здравствуйте. Возник вопрос, при попытке реализации примитивнейшей программы. "Требуется {, вводящая тело лямбды". Что это значит? #include "stdafx.h" #include <iostream> using namespace std; ... подробнее

Показать сообщение отдельно
Gragoo
0 / 0 / 0
Регистрация: 07.06.2015
Сообщений: 5

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

09.07.2015, 16:24. Просмотров 400. Ответов 2
Метки (Все метки)

Здравствуйте.
Требуется найти наибольшую возрастающую подпоследовательность в массиве (для 1 2 3 1 2 5 6 1 будет 1 2 5 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
void Posled(float *arrayA, int n)  //Поиск возрастающей подпоследовательности
{
    int max = 1, i = 1; //max - кол-во элементов подпоследовательности
    int konec;  //индекс последнего элемента подпосл. в массиве A
    do
    {
        int s = 1;
        while (arrayA[i]>=arrayA[i-1] && i<=n)
        {
            s = s++;
            i = i++;
        }
        if (s>max) 
        {
            max = s; 
            konec = i--;
        }
        i = i++;
    }
    while (i>n);
    if (max=1) cout << "Такой подпоследовательности нет." << endl;
    else
    {
        cout << "Итоговая подпоследовательность: "; 
        for(i=n-max+1; i<=konec ;i++) cout << arrayA[i] << ' ';
        cout << endl << "Элементов: " << max  << endl;
    }
}
В делфи все работало.

В с++ все время выводит "Такой подпоследовательности нет."
По идее проблема с max, но я не могу проверить в отладчике, т.к. он не может найти локальные переменные. Единственное, что могу сказать про отладку, max = s он проходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru