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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.76
Светик@
1 / 1 / 0
Регистрация: 19.10.2009
Сообщений: 87
#1

Все отрицательные элементы массива перенести в начало, а все остальные - в конец - C++

22.09.2010, 20:13. Просмотров 4160. Ответов 2
Метки нет (Все метки)

помогите пожалуйста)))
преобразовать массив по следующему правилу (воспользовавшись массивом у как вспомогательным):все отрицательные элементы массива х перенести в его начало , а все остальные -в конец , сохраняя исходное взаимное расположение как среди отрицательных , так и среди остальных элементов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 20:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Все отрицательные элементы массива перенести в начало, а все остальные - в конец (C++):

В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования - C++
Здравствуйте форумчане! Подскажите, как решить данные задания. Отстаю от группы, а так и не разобрался в этой теме. Используя...

Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные - C++
Помогите, пожалуйста. >>"Дан одномерный массив А, состоящий из N элементов. Сколько значений элементов встречается в массиве по 3...

Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные - C++
Помогите, пожалуйста. >>"Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец...

Для каждого из массивов все отрицательные элементы переместить в начало массива, а все положительные — в конец - C++
Составить программу, которая превращает массивы А и В следующим образом: для каждого из них все отрицательные элементы одномерного...

Перенести все отрицательные элементы массива в конец - C++
#include <iostream> #include <ctime> using namespace std; #define n 10 int main(){ srand(time(NULL)); int a, i, pos=0, q,...

Все положительные элементы массива поставить в начало, а отрицательные - в конец - C++
Помогите решить такую задачу пжл: дан одномерный массив "а" (состоящий из вещественных чисел). Необходимо пройдя по массиву один раз все...

2
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
22.09.2010, 20:48 #2
както так..

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
#include <iostream>
#include <time.h>//для произвольной генерации чисел.
 
void main()
{   
    const int razm =10;// размер масивов.
    int masX[razm], masY[razm];
    srand ( time(NULL) );
    for (int i=0;i<razm;i++)
    {
        masY[i]=masX[i]=0;//обнуляем массивы
        masY[i]=8-rand()%15;
        // можно заменить на ввод с клавиатуры:
        //std::cout<<'\n'<<" masY["<<i<<"] =";
        //std::cin>>masY[i];
    }
    for (int i=0;i<razm;i++)// если правильно понял тз.. 
    {
        static int j=0, k=razm-1;
        if (masY[i]<0)//  все отрицательные строятся от начала
        {
            masX[j]=masY[i];
            j++;
        }
        else// остальные строятся с конца массива.
        {
            masX[k]=masY[i];
            k--;
        }
    }
    for (int i=0;i<razm;i++)
    {
        std::cout<<'\n'<<" masY["<<i<<"] = "<<masY[i]
        <<"  masX["<<i<<"] = "<<masX[i];
    }
    std::cout<<std::endl;
    system("pause");
}
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
22.09.2010, 22:11 #3
Светик@, решение с помощью std::stable_partition
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iterator>
#include <iostream>
#include <functional>
 
int main() {
  int arr[] = { -1, 2, 4, 5, -4, -6, 3, -4 };
  
  std::stable_partition(arr, arr + sizeof(arr) / sizeof(arr[0]), std::bind2nd(std::less<int>(), 0));
  
  std::copy(arr, arr + sizeof(arr) / sizeof(arr[0]), std::ostream_iterator<int>(std::cout, " "));
  
  return 0;
}
Результат: http://codepad.org/I6485Ozy
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2010, 22:11
Привет! Вот еще темы с ответами:

Отрицательные элементы массива переместить в начало, а остальные – в конец, с сохранением порядка следования - C++
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования. Не...

Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес - C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n)....

Поставить в начало массива все четные элементы, а конец – все нечетные - C++
Всем доброго времени суток.Помогите написать процедуру, которая ставит в начало массива все четные элементы, а конец – все нечетные.

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


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

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

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