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

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

Войти
Регистрация
Восстановить пароль
 
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
#1

Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй. - C++

14.12.2012, 08:52. Просмотров 408. Ответов 4
Метки нет (Все метки)

Короче нужно оформить два массива с помощью функций , дан основной массив. Всего три массива. Из этого основного массива положительные элементы перетащить в первый массив, а все отрицательные во второй.
Массивы я сформировал,но как распределить элементы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 08:52     Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй.
Посмотрите здесь:

Дан массив B[0:n-1].Сформировать два новых массива:первый содержит отрицательные элементы , а второй - чётные C++
C++ Дан массив F[0:n-1].Сформировать два новых массива: первый содержит элементы, не превышающие заданного числа, а второй - все остальные
Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом — все отрицательные C++
C++ если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален
C++ Сформировать два массива из исходного: в первый записать отрицательные элементы, во второй – остальные
Все положительные элементы из массива записать в массив A, а отрицательные в массив B C++
C++ Из массива Х(N) все положительные элементы записать в массив У(К), а все отрицательные элементы – в массив Z(М)...
В массив X записать сначала все положительные элементы M1 а затем все отрицательные элементы M2 C++
Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом все отрицательные C++
C++ Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом все отрицательные
Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом – все отрицательные C++
C++ Преобразовать массив, расположив сначала все положительные элементы, а потом - все отрицательные

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
14.12.2012, 13:58     Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй. #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
#include <iostream>
 
void run(const int *begin, const int *end, int *pos, int *neg, int **p_pos, int **p_neg)
{
   *p_pos = pos;
   *p_neg = neg;
   
   for(const int* p = begin; p != end; ++p)
   {
      if(*p > 0) **p_pos = *p, ++(*p_pos);
      else if(*p < 0) **p_neg = *p, ++(*p_neg);
   }
}
 
int main()
{
   const int len = 8;
   
   int arr[len] = {1, 2, 3, -4, -2, 4, -1, -3};
   int pos[len];
   int neg[len];
   
   int *p_pos, *p_neg;
   
   run(arr, arr + len, pos, neg, &p_pos, &p_neg);
   
   std::cout << "positives: " << std::endl;
   for(const int* p = pos; p != p_pos; ++p)
      std::cout << *p << "\t";
      
   std::cout << std::endl;
   
   std::cout << "negatives: " << std::endl;
   for(const int* p = neg; p != p_neg; ++p)
      std::cout << *p << "\t";
}
http://liveworkspace.org/code/4mqLU7$7
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
14.12.2012, 14:01     Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
   auto print = [](const std::vector<int>& v)
   {
      std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
      std::cout << std::endl;
   };
   std::vector<int> v = {1,2,3,0,-1,-2,-3,0}, positives, negatives;
   std::for_each(v.begin(), v.end(), [&positives, &negatives](int value)
   {
      if (value > 0) positives.push_back(value);
      else if (value < 0) negatives.push_back(value);
   });
   v.erase(std::remove_if(v.begin(), v.end(), [](int i) { return i; }), v.end());
   print(v);
   print(positives);
   print(negatives);
}
http://liveworkspace.org/code/4b9V1z$2
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
14.12.2012, 15:50  [ТС]     Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй. #4
Напишите пожалуйста с комментариями
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
14.12.2012, 15:56     Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй. #5
ForEveR, как с языка сняли, сам хотел точно такое решение написать)
Yandex
Объявления
14.12.2012, 15:56     Из массива положительные элементы перетащить в первый массив, а все отрицательные во второй.
Ответ Создать тему
Опции темы

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