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

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

Восстановить пароль Регистрация
 
Morbius
Сообщений: n/a
14.02.2013, 23:07     Нахождение самой длинной цепочки отрицательных элементов с использованием указателей #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++ Вывести номер строки матрицы с самой длинной последовательностью одинаковых элементов
Ввести двумерный массив А (5*2).Определить в нем сумму модулей отрицательных элементов с использованием указателей. C++
C++ Нахождение номера самой длинной строки в матрице
C++ Программа с одномерным массивом (вычислить количество элементов в самой длинной серии)
Определить длину самой длинной цепочки единиц в переменной unsigned long a; C++
Функция поиска самой длинной цепочки элементов массива C++
C++ Найти строку матрицы с самой длинной серией одинаковых элементов
C++ Нахождение самой длинной строки из массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 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. Что-то мне подсказывает что не сами прогу делали =) иначе могли бы и догадаться о таком пустяке =)
Yandex
Объявления
15.02.2013, 08:18     Нахождение самой длинной цепочки отрицательных элементов с использованием указателей
Ответ Создать тему
Опции темы

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