Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корректировка массива, помочь в исправлении 
V
    Опции темы
CatGav
Дата 30.10.2012, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Переписать в начало массива группу, содержащую наибольшее число подряд идущих положительных элементов. Тут у меня р1 начало максимальной последовательности р2 ее конец . Программу делал по примеру, в ней последовательность переносится в конец массива, а вот что нужно исправить чтоб переносилось в начало  никак не пойму.
Код

#include "stdafx.h"
#include "iostream" 
#include "conio.h"
#include <time.h>

using namespace std;

int main(array<System::String ^> ^args)
{

    const int n=10;
    int a[n],i,p1,p2,temp,j;
    int k=0;
    int max=0;
cout<<"Vvedite massiv"<<endl;
    for (i=0;i<n;i++)    
    
    {    
        cin>>a[i];
    }
for (i=0;i<n;i++)
 {
  if (a[i]>0)
  {
         ++k;
  }
  
  else
  { 
     if (k>max)
        {
        max=k;
        p2=i-1;
        p1=p2-k+1;
        k=0;  
         }
     }
   }
cout<<" itogov massiv "<<endl;

 for (i = p1; i <= p2; i++)
 {
        for (j = p1; j < n - 1; j++)
        {
            temp = a[j];
            a[j] = a[j + 1];
            a[j + 1] = temp;

        }
    }


 for (i=0; i<n; i++)
{
    cout<<a[i]<<' '<<endl;
}
 _getch();
}
 
PM MAIL   Вверх
feodorv
Дата 30.10.2012, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



У Вас может быть 2е вырожденные ситуации:
  • когда положительных элементов в списке вообще нет (перемещать нечего)
  • когда p1 есть 0 (тогда и перемещать не надо)


Цитата(CatGav @  30.10.2012,  19:17 Найти цитируемый пост)
Программу делал по примеру, в ней последовательность переносится в конец массива

Так сделайте по этому же примеру, только двигайте j не вперёд, а назад:
Код

 for (i = p1; i <= p2; i++)
 {
        for (j = p2; j > 0; j--)
        {
            temp = a[j];
            a[j] = a[j - 1];
            a[j - 1] = temp;
        }
    }

Результат не проверял, так что тестирование оставляю Вам  smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
McMan
Дата 30.10.2012, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.2.2007
Где: Ярославль

Репутация: нет
Всего: 1



feodorv
но это явно не перенос в НАЧАЛО массива
p1=2 p2=5 например
где тут присвоение a[0]му ?

Это сообщение отредактировал(а) McMan - 30.10.2012, 20:08
PM MAIL   Вверх
feodorv
Дата 30.10.2012, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(McMan @  30.10.2012,  21:07 Найти цитируемый пост)
где тут присвоение a[0]му ? 

Когда j становится единицей во внутреннем цикле smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
McMan
Дата 30.10.2012, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.2.2007
Где: Ярославль

Репутация: нет
Всего: 1



ой
прошу прощения
визуально не скомпилил ...  smile 
PM MAIL   Вверх
CatGav
Дата 30.10.2012, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Большое спасибо!! Все работает как надо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.