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

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

Войти
Регистрация
Восстановить пароль
 
Gragoo
0 / 0 / 0
Регистрация: 07.06.2015
Сообщений: 5
#1

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

09.07.2015, 16:24. Просмотров 337. Ответов 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 он проходит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2015, 16:24     Найти наибольшую возрастающую подпоследовательность в массиве
Посмотрите здесь:

C++ как найти наибольшую арифметическую прогрессию в массиве
Найти ее максимальную возрастающую подпоследовательность C++
C++ Найти наибольшую общую подпоследовательность двух последовательностей
C++ Определить наибольшую площадь треугольника, заданного длинами сторон в массиве
C++ Найти наибольшую по значению четную цифру в массиве
C++ В массиве целых чисел найти максимально длинную возрастающую последовательность
C++ В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее
C++ Удалить элементы в массиве так, чтобы оставшиеся образовывали возрастающую последовательность
Найти наибольшую сумму N последовательных чисел в массиве C++
Найти в массиве подпоследовательность из подряд идущих элементов с наибольшей суммой C++
Как найти в двумерном массиве наибольшую диагональ/горизонталь/вертикаль? C++
Найти в массиве наибольшую серию подряд идущих элементов, расположенных по возрастанию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12730 / 7190 / 802
Регистрация: 27.09.2012
Сообщений: 17,738
Записей в блоге: 2
Завершенные тесты: 1
09.07.2015, 16:28     Найти наибольшую возрастающую подпоследовательность в массиве #2
C++
1
(max=1)
= - это присваивание
== - это сравнение.
Вывод:
C++
1
(max==1)
rjxk
7 / 7 / 6
Регистрация: 18.06.2015
Сообщений: 30
09.07.2015, 16:34     Найти наибольшую возрастающую подпоследовательность в массиве #3
Цитата Сообщение от Gragoo Посмотреть сообщение
if (max=1)
max присваивается единица. Результат всегда true

C++
1
if (max == 1) cout << "Такой подпоследовательности нет." << endl;
Yandex
Объявления
09.07.2015, 16:34     Найти наибольшую возрастающую подпоследовательность в массиве
Ответ Создать тему
Опции темы

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