Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 7
1

Копирование одномерного массива в определенном порядке

02.09.2015, 15:31. Показов 1650. Ответов 6
Метки нет (Все метки)

Помогите, пожалуйста. Не могу разобраться: необходимо написать программу, которая копирует одномерный целочисленный массив в другой такой же массив, но сначала копируются положительный элементы, потом нулевые, потом отрицательные. Уже второй день зависаю.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2015, 15:31
Ответы с готовыми решениями:

Расположить элементы первой половины одномерного массива в порядке возрастания, а второй - в порядке убывания
Нужно расположить элементы первой половины одномерного массива в порядке возрастания, а второй...

Заполнение массива в определённом порядке
Привет, снова я)) Не забывайте надо вставать, день сам по седе г**ном не станет)) И теперь когда...

Заполнении массива в определенном порядке!
Здравствуйте :) нужна небольшая помощь ... немогу разобраться с массивом Задание: заполните...

Вывести элементы массива в определенном порядке
Дан массив A размера N. Вывести его элементы в следующем порядке: A1, AN, A2, AN–1, A3, AN–2, … .

6
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
02.09.2015, 15:39 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
#include <iostream>
#include <algorithm>
 
using namespace std;
 
const int SIZE = 7;
 
int main()
{
    int intArray[SIZE] = {5, 3, 32, -1, 1, 104, 53};
    int newArray[SIZE] = intArray;
 
    //Now we call the sort function
    sort(newArray, newArray+ SIZE);
 
    cout << "Sorted Array looks like this." << endl;
    for (size_t i = 0; i != SIZE; ++i)
        cout << newArray[i] << " ";
 
    return 0;
}
 
//Сперто с [URL="http://www.cplusplus.com/articles/NhA0RXSz/"]сиплюсплюс.ком[/URL] и немного адаптированно!
0
1455 / 792 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.09.2015, 16:12 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
 
int main()
{
   std::vector<int> v1{-1,-3,5,-9,6,0,-5,0,-1,-3,5,7,0};
   std::vector<int> v2(v1.size());
   std::partial_sort_copy(v1.cbegin(), v1.cend(), v2.begin(), v2.end(), std::greater<int>());
   for (int i : v2) std::cout << i << " ";
}
0
2826 / 1635 / 252
Регистрация: 03.12.2007
Сообщений: 4,222
02.09.2015, 20:03 4
C++
1
2
std::vector<int> v2(v1.size());
std::partial_sort_copy(v1.cbegin(), v1.cend(), v2.begin(), v2.end(), std::greater<int>());
Как всё сложно... А не тоже ли самое будет
C++
1
2
std::vector<int> v2(v1);
std::sort(v2.begin(), v2.end(), std::greater<int>());
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 7
02.09.2015, 20:13  [ТС] 5
Спасибо за ответы. Только я С++ только-только учить начал, я не совсем понимаю код n0n4m3r, кстати у меня Visual Studio не компилирует этот код:
Error 1 error C2075: 'newArray' : array initialization needs curly braces
2 IntelliSense: initialization with '{...}' expected for aggregate object
а указаный по ссылке норм.
DiffEreD спасибо, но это слишком сложно(рано) для меня, я вообще не понимаю этот код
0
7159 / 6134 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
02.09.2015, 20:16 6
Не понимает VS такую инициализацию массива. Сделай так:
C++
1
2
3
4
std::vector<int> v1;
v1.push_back(-1);
v1.push_back(-3);
...
0
9 / 9 / 3
Регистрация: 02.03.2013
Сообщений: 53
03.09.2015, 13:16 7
Лучший ответ Сообщение было отмечено Manovaction как решение

Решение

вот тебе большой код но для тебя надеюсь будет понятнее чем эти push_back и вектора
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
42
43
44
45
46
47
48
49
#include <iostream>
 
void main()
{
    int const iNum = 10;//тут вписываем размер массива
    int z = 0;//на будущее
    int mass[iNum],copymas[iNum];
    std::cout << "input mass";//выводит строчку "ввести массив"
    //этот цикл для ввода элементов первого массива
    for (int j = 0; j < iNum; j++)
    {
        std::cin >> mass[j];
    }
    //этот цикл перенаправляет из первого
    //массива во второй только положительные
    for (int j = 0; j < iNum; j++)
    {
        if (mass[j] > 0)
        {
            copymas[z] = mass[j];
            z++;
        }
    }
    //этот цикл перенаправляет из первого
    //массива во второй только нули
    for (int j = 0; j < iNum; j++)
    {
        if (mass[j] == 0)
        {
            copymas[z] = mass[j];
            z++;
        }
    }
    //этот цикл перенаправляет из первого
    //массива во второй только отрицательные
    for (int j = 0; j < iNum; j++)
    {
        if (mass[j] < 0)
        {
            copymas[z] = mass[j];
            z++;
        }
    }
    for (int j = 0; j < iNum; j++)
    {
        std::cout << copymas[j];//вывод второго массива на экран
    }
    system("pause");//что бы после окончания приложение не закрывалось
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2015, 13:16

Вывести элементы массива в определенном порядке
здраствуйте! кто может помогите пож-та или подскажите чем сможете... a)Дан массив A размера N....

Копирование одномерного массива в двумерный
допустим есть массив int a = new int int b = new int for (i=1;i&lt;=10;i++) // расчет a //...

Построение нового массива, содержащего элементы заданного одномерного массива в инвертированном порядке
Написать программу построения нового массива, содержащего элементы заданного одномерного массива в...

Переставить в обратном порядке элементы одномерного массива, расположенные до первого минимального элемента массива
1.Переставить в обратном порядке элементы одномерного массива, расположенные до первого...


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

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

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