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

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

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

В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее - C++

26.09.2012, 18:57. Просмотров 710. Ответов 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
int main(int argc, char* argv[])
{
const n=10;
int x[n],y[n]; int i; int k=0, max=0,p1,p2;
for (i=0; i<n; i++)
  {
   y[i]=0;
  }
for (i=0; i<n; i++)
  {
   cout<<"X["<<i<<"] = ";
   cin>>x[i];
  }
for (int i=0;i<n;i++)
 {
     if (x[i]<0)
     {
     ++k;
     }
     else
     {
     if (k>max)
        {
        max= k;
        k=0;
        }
     }
 }
 cout<<"max "<<max;
cin.get();
cin.get();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 18:57     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее
Посмотрите здесь:

В одномерном масстве найти наибольшую последовательность из отрицаельных чисел и перенести ее в конец массива - C++
Я нашла наибольшую последовательность из отрицательных чисел, а перенести в конец массива не получается (нужно без всякий дополнительных...

Вывести номера отрицательных элементов в одномерном массиве - C++
Вывести номера отрицательных элементов

В одномерном массиве найти сумму отрицательных элементов - C++
Нужна помощь! Не могу больше. Поправьте пожалуйста!! Задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: ...

В одномерном массиве размерностью N найти количество отрицательных элементов - C++
Дано одномірний масив розмірністю N, знайти кількість від’ємних елементів масиву Язык форума - Русский. Перевожу В одномерном массиве...

Найти наибольшую сумму N последовательных чисел в массиве - C++
Есть число N-(длина последовательности) Есть число K-(кол-во чисел в массиве) N&lt;=1000,,,1&lt;=K&lt;2^23 Как найти наибольшую сумму N...

В одномерном массиве вещественных чисел вычислить сумму отрицательных элементов и произведение между max и min - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)сумму отрицательных элементов массива 2)произведение...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
26.09.2012, 20:11     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #2
Сохраняйте дополнительно индекс первого отрицательного числа последовательности
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
26.09.2012, 20:41     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #3
У вас счетчик max работает неправельно.
введите к примеру:
-5
1
2
3
-1
-2
5
-7
-8
-9

и он выдаст 2.
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
26.09.2012, 21:15     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #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
36
37
#include <iostream>
#include <algorithm>
#include <functional>
#include <utility>
 
typedef std::pair<int*, int*> pii;
 
struct PredFind : public std::unary_function<int, bool>
{
    bool operator()(int val) const
    {
        return val < 0;
    }
};
 
bool PredMaxPair(pii const& pair1, pii const& pair2)
{
    return (pair1.second - pair1.first) < (pair2.second - pair2.first);
}
 
int main()
{
    int arr[] = {-1,-2,-3,0,9,-9,-6,-7,-7}, *p1 = 0, *p2 = 0, *pend = std::end(arr);
    pii maxpair = std::make_pair(arr, arr), tmppair;
    for(p1 = arr, p2 = arr; (p1 = std::find_if(p2, pend, PredFind())) != pend; )
    {
        p2 = std::find_if(p1, pend, std::not1(PredFind()));
        tmppair = std::make_pair(p1, p2);
        if(PredMaxPair(maxpair, tmppair))
            maxpair = tmppair;
    }
    for(p1 = maxpair.first; p1 != maxpair.second; ++p1)
    {
        std::cout << *p1 << "  ";
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2012, 17:58     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее
Еще ссылки по теме:

Функция поиска в одномерном массиве: найти количество положительных и отрицательных элементов - C++
как в С++ пишется функция поиск? что то типо этого: poisk(A, n); void poisk(int** a, int n)

Вводится последовательность из N целых чисел. Найти наибольшую по значению четную цифру в каждом числе. - C++
Задание: Вводится последовательность из N целых чисел. Найти наибольшую по значению четную цифру в каждом числе. Я написал программу,...

Найти количество положительных, отрицательных и равных нулю элементов в одномерном вещественно массиве - C++
Найдите количество положительный, отрицательных и равных нулю элементов в одномерном вещественно массиве. Помогите с задачей,...

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


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

Или воспользуйтесь поиском по форуму:
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
27.09.2012, 17:58     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #5
igorrr37, Вам не кажется, что это слишком сложный код для новичка?
Yandex
Объявления
27.09.2012, 17:58     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее
Ответ Создать тему
Опции темы

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