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

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

Войти
Регистрация
Восстановить пароль
 
Morbius
#1

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

14.02.2013, 23:07. Просмотров 419. Ответов 1
Метки нет (Все метки)

В одномерном массиве из 100 элементов найти самую длинную цепочку отрицательных элементов.

m = { 16, 78, 99, 6, -29, 19, -52, 65, -88, 51,

-79, -22, 32, -25, -62, -69, -2, -59, -75, 89,

-87, 95, -22, 85, -49, -75, 76, 73, -59, -52,

30, 49, -28, -48, 0, 57, -6, -85, 0, -18,

-97, -21, -95, 64, 22, -2, 69, -84, -1, -71,

-25, 47, 72, 43, 15, -44, 44, 61, 4, 74,

88, -61, 0, -64, -83, 97, 0, 90, 15, 8,

-54, 19, 73, 35, -67, -87, 85, -99, -70, 10,

98, 58, -10, -29, 95, 62, 77, 89, 36, -32,

78, 60, -79, -18, 30, -13, -34, -92, 1, -38}

Вывести полученную цепочку.
В задании использовать указатели.
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
#include<iostream.h>
 
void main()
{
    int *p;
 
    int m[] = {  16,  78,  99,   6, -29,  19, -52,  65, -88,  51,
 
      -79, -22,  32, -25, -62, -69,  -2, -59, -75,  89,
 
      -87,  95, -22,  85, -49, -75,  76,  73, -59, -52,
 
       30,  49, -28, -48,   0,  57,  -6, -85,   0, -18,
 
      -97, -21, -95,  64,  22,  -2,  69, -84,  -1, -71,
 
      -25,  47,  72,  43,  15, -44,  44,  61,   4,  74,
 
       88, -61,   0, -64, -83,  97,   0,  90,  15,   8,
 
      -54,  19,  73,  35, -67, -87,  85, -99, -70,  10,
 
       98,  58, -10, -29,  95,  62,  77,  89,  36, -32,
 
       78,  60, -79, -18,  30, -13, -34, -92,   1, -38};
p=&m[0];
int a,max,i;
a=0;max=0;
for(i=0;i<100;i++)
{
    if(*(p+i)<0)
    {
        while(*(p+i)<0)
    {
          a++;
          i++;
    }
        if(a>max){max=a;}
    a=0;}
}
 
cout<<max;
}
прога находит только максимальное количество отрицательных элементов в в массиве(выделено жирным в условии) .. помогите вывести эту цепочку
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2013, 23:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение самой длинной цепочки отрицательных элементов с использованием указателей (C++):

Функция поиска самой длинной цепочки элементов массива - C++
Доброго времени суток форумчане! Препод взвалил непосильную на данный момент для меня задачку, с которой у меня возникли проблемы из за...

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

Определить длину самой длинной цепочки единиц в переменной unsigned long a - C++
#include &lt;iostream&gt; using namespace std; int main() { unsigned long a = 123123; int len = 0, tmp = 0; while...

Определить длину самой длинной цепочки единиц в переменной unsigned long a; - C++
Помогите составить алгоритм нахождения этой длины

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

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

1
MrGrig
177 / 160 / 2
Регистрация: 08.10.2012
Сообщений: 422
15.02.2013, 08:18 #2
Цитата Сообщение от Morbius Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int a,max,i;
a=0;max=0,n=-1,n1=-1,k=-1;
for(i=0;i<100;i++)
{
* * if(*(p+i)<0)
* * {
        n1=i;
* * * * while(*(p+i)<0)
* * {
* * * * * a++;
* * * * * i++;
* * }
* * * * if(a>max){max=a; n=n1; k=i;}
* * a=0;}
}
 
for(int i=n;i<k;i++)
    cout<<m[i]<<" ";
P.S. Что-то мне подсказывает что не сами прогу делали =) иначе могли бы и догадаться о таком пустяке =)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2013, 08:18
Привет! Вот еще темы с ответами:

Ввести двумерный массив А (5*2).Определить в нем сумму модулей отрицательных элементов с использованием указателей. - C++
Ввести двумерный массив А (5*2).Определить в нем сумму модулей отр элементов с использованием указателей.

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

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

Программа с одномерным массивом (вычислить количество элементов в самой длинной серии) - C++
Вобщем в одномерном массиве нужно вычислить количество элементов в самой длинной серии. Серия - это последовательность элементов, которые...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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