Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 01:34   #1
Sergey_Belov
Новичок
Джуниор
 
Регистрация: 04.04.2012
Сообщений: 1
По умолчанию Сгруппировать все ненулевые значения в начале массива

С++.Сгруппировать все ненулевые значения в начале массива.Элементы массива вводятся пользователем.

Последний раз редактировалось Sergey_Belov; 04.04.2012 в 01:43.
Sergey_Belov вне форума Ответить с цитированием
Старый 04.04.2012, 09:38   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Пусть N - количество чисел в массиве, x - массив чисел.
Код:
    i=0;
    j=N-1;
    while (i<j)
    {
        while ((x[i]!=0)&&(i<j))
            i++;
        while ((x[j]==0)&&(i<j))
            j--;
        if (i<j)
        {
            x[i]=x[j];
            x[j]=0;
            i++;
            j--;
        }
    }
Хорошенько протестируйте
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.04.2012, 12:37   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Sergey_Belov

Сгруппировать все ненулевые значения в начале массива

Код:
int arr[10];
...
std::partition(arr, arr+sizeof(arr)/sizeof(arr[0]), std::not1(std::bind2nd(std::equal_to<int>(), 0)));
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны три числа a,b и с. Если все они ненулевые вывести их на экран в порядке возростания 1znar Паскаль, Turbo Pascal, PascalABC.NET 1 07.07.2011 18:41
Элементы матрицы. Все ненулевые элементы массива D(k) расположить в начале массива E(k) и подсчитать их к Вася Маклауд Помощь студентам 0 03.04.2011 17:21
Формулы массива или сгруппировать данные kzld Microsoft Office Excel 10 30.11.2009 18:59
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16
Как мне сделать так штоби при вводе массива все значения сами переносились по словам. Помогити плиз KSP Общие вопросы Delphi 7 24.09.2007 22:44