1 / 1 / 0
Регистрация: 01.09.2012
Сообщений: 30
1

Получить новый массив, в котором сначала идут положительные числа, затем нулевые, затем отрицательные исходного

01.09.2012, 19:54. Показов 2325. Ответов 5
Метки нет (Все метки)

дан массив X(N). получить новый массив Y(N), такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из Х. данные: n=7; Х=(-1,2,0,4,-3,-2,0)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2012, 19:54
Ответы с готовыми решениями:

Сформировать новый массив в котором идут сначала отрицательные элементы, затем нули, затем положительные
Здравствуйте! Помогите пожалуйста! Задание: Дан массив из 10 чисел. Нужно сформировать новый...

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

Переписать в массив B сначала отрицательные, а затем положительные элементы исходного массива
Помогите пожалуйста решить эти задачки... 1. Одномерные массивы Переписать в массив B(N)...

Получить новый массив, где сначала идут положительные числа, затем нулевые, затем отрицательные
Дан массив X. Получить новый массив Y такой, что в нем сначала идут положительные числа, затем...

5
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
01.09.2012, 20:04 2
просто сортируете по убыванию.

Не по теме:

мне кажется, что этот пользователь - ulx05

1
Эксперт С++
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
01.09.2012, 20:25 3
алишка999, такие дела..
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
#include <iostream>
#include <algorithm>
#include <functional>
 
int main()
{
   std::vector <int> input_vector = { -1, 2, 0, 4, -3, -2, 0 };
   std::vector <int> result_vector, negative_vector;
   
   std::partition_copy(
      input_vector.begin(),
      input_vector.end(),
      std::back_inserter(result_vector),
      std::back_inserter(negative_vector),
      std::bind(
         std::greater_equal <int>(),
         std::placeholders::_1,
         0
      )
   );
   
   std::stable_partition(
      result_vector.begin(),
      result_vector.end(),
      std::bind(
         std::not_equal_to <int>(),
         std::placeholders::_1,
         0
      )
   );
   
   std::copy(
      negative_vector.begin(),
      negative_vector.end(),
      std::back_inserter(result_vector)
   );
   
   for (const auto & val : result_vector) {
      std::cout << val << " ";
   }
}
http://liveworkspace.org/code/... dd32f8ddf9
0
131 / 112 / 11
Регистрация: 01.09.2012
Сообщений: 288
01.09.2012, 22:42 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main (){
    int i, j, n = 7;
    int massX[] = {-1,2,0,4,-3,-2,0};
    int massY[n];
    int num;
 
    for (i = 0; i < n; i++)
        massY[i]=massX[i];
 
    for (j = 0; j < n; j++)
        for (i = 1; i < n; i++)
            if (massY[i-1] < massY[i]){
                num = massY[i-1];
                massY[i-1] = massY[i];
                massY[i] = num;
            }
}
0
Эксперт С++
4722 / 2543 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
02.09.2012, 14:01 5
Elboy, Ваш код близок к пузырьковой сортировке, но по сравнению с ней "слабее". Лучше тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void main (){
    int i, j;
    const int n = 7;
    int massX[] = {-1,2,0,4,-3,-2,0};
    int massY[n];
    int num;
 
    for (i = 0; i < n; i++)
        massY[i]=massX[i];
 
    for (j = 0; j < n; j++)
        for (i = 1; i < n-j; i++)
            if (massY[i-1] < massY[i]){
                num = massY[i-1];
                massY[i-1] = massY[i];
                massY[i] = num;
            }
    for (i = 0; i < n; i++)
        printf("%d ", massY[i]);
}
0
14 / 14 / 3
Регистрация: 28.07.2012
Сообщений: 57
02.09.2012, 19:17 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main()
{
   setlocale(LC_ALL, "rus");
   cout << "Введите количество элементов массива" << endl;
   int n;
   cin >> n;
   vector <int> a(n);
   for (int i = 0; i < n; i++)
      cin >> a[i];
   sort(a.rbegin(), a.rend());
   for (int i = 0; i < n; i++) 
      cout << a[i];
   cin.get();
   return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2012, 19:17
Помогаю со студенческими работами здесь

Получить из массива новый в котором сначала идут положительные числа, затем нули и потом отрицательные
Дан массив Х(N). Получить новый массив Y(N), такой, что в нем сначала идут положительные числа,...

Получить новый массив, в котором сначала расположены отрицательные, а затем положительные элементы исходного
Даны два массива A и B размера 5. Получить новый массив, в котором сначала расположены...

Записать в новый файл сначала положительные, затем отрицательные, затем нулевые компоненты исходного файла
Помогите плиз с задачей желательно с блоксхемой: Создать числовой файл F.Получить файл G, в...

Получить массив, в котором сначала идут положительные элементы, а затем отрицательные
Составьте программу на языке C# с использованием динамических массивов. Дан массив A размера n, не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru