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

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

Восстановить пароль Регистрация
 
PitkinYura
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 5
26.09.2012, 18:57     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #1
Дошел до того что нахожу количество отрицательных чисел в наибольшей последовательности, но как вивести ети числа не могу понять(. Вот код программы
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++ Вывести номера отрицательных элементов в одномерном массиве
Найти в массиве минимальный и максимальный элементы. Вывести последовательность значений из этого диапазона, не встречающихся в данном массиве C++
C++ в одномерном массиве найти элементы встречающиеся 2 раза и вывести их на экран
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
26.09.2012, 20:11     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #2
Сохраняйте дополнительно индекс первого отрицательного числа последовательности
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
26.09.2012, 20:41     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #3
У вас счетчик max работает неправельно.
введите к примеру:
-5
1
2
3
-1
-2
5
-7
-8
-9

и он выдаст 2.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 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;
}
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
27.09.2012, 17:58     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее #5
igorrr37, Вам не кажется, что это слишком сложный код для новичка?
Yandex
Объявления
27.09.2012, 17:58     В одномерном массиве найти наибольшую последовательность из отрицательных чисел и вывести ее
Ответ Создать тему
Опции темы

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