Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 49

В новый массив поместить элементы исходного массива в указанном порядке

26.05.2019, 00:39. Показов 6801. Ответов 14

Студворк — интернет-сервис помощи студентам
Пользователь вводит размер n динамического массива Х, а затем заполняет его целыми числами. Сформировать новый массив Y, в который поместить элементы из массива X в следующем порядке: Х0, Хn, X1, Xn-1..., где n - индекс последнего элемента массива. Получившийся массив Y вывести в файл.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2019, 00:39
Ответы с готовыми решениями:

Получить новый массив, в котором числа исходного массива следуют в данном порядке
(использовать оператор for…) Написать программу с использованием хранения последовательности чисел в памяти компьютера (количество чисел...

Включить в новый массив все элементы исходного массива, кроме 3
Дан массив А = {12, 3, 45, 3, 8, 9, 3}. Создать новый массив, включив в него все элементы массива A, кроме 3 Привет! Не могу решить...

Скопировать в новый массив минимальные элементы каждой строки исходного массива
Задача: Создать массив случайных чисел размерности m x n (Размерность ввести с клавиатуры). Скопировать в новый массив минимальные элементы...

14
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 49
26.05.2019, 12:10  [ТС]
Тема все еще актуальна! Срочно! Спасибо заранее!
0
 Аватар для madperez
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
26.05.2019, 13:09
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const int N = 5;
    int arr[N];
    for (int i = 0; i < N; i++) {
        arr[i] = i+1;
        cout << arr[i] << " ";
    }
    int arr2[N];
    int count = 1;
    int p = N - 1;
    int t = 0;
    cout << endl;
    for (int i = 0; i < N; i++) {
        if (count % 2 != 0) {
            arr2[i] = arr[t]; 
            t++;
        }
        else {
            arr2[i] = arr[p];
            p--;
        }
        count++;
        cout << arr2[i]<<" ";
    }
Что то на подобие этого?
0
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 49
26.05.2019, 13:11  [ТС]
Типо того, но с динамическим массивом)
0
 Аватар для madperez
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
26.05.2019, 13:44
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
50
51
52
53
54
55
56
#include <iostream>
#include <conio.h>
using namespace std;
 
void main() {
    setlocale(LC_ALL, "rus");
    cout << "\nВведите размер мвссива:  ";
    int N;
    cin >> N;
    int *arr=new int[N];
    for (int i = 0; i < N; i++) {
        arr[i] = i + 1;
        cout << arr[i] << " ";
    }
    int count = 1;
    int p = N;
    int t = 0;
    int count2 = 1;
    cout << endl;
    for (p = N, t = 0; p > 0, t < N; ) {
        if (count % 2 != 0) {
            t++;
            count2++;
        }
        else {
            p--;
            count2++;
        }
        count++;
    }
    count = 1;
    p = N;
    t = 0;
    int*arr2 = new int[count2];
    for (int i=0,p = N-1, t = 0; p >= 0, t <= N;i++ ) {
        if (count % 2 != 0) {
            
            arr2[i] = arr[t];
            t++;
        }
        else {
            arr2[i] = arr[p];
            p--;
            
        }
        count++;
        
    }
    for (int i = 0; i < count2; i++) {
        cout << arr2[i] << " ";
    }
    delete[]arr;
    delete[]arr2;
 
    _getch();
}
В фаил уже сам сохрани
0
7 / 5 / 2
Регистрация: 03.11.2018
Сообщений: 20
26.05.2019, 13:58
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
50
51
52
53
54
55
56
#include <iostream>
#include <fstream>
using namespace std;
 
void CF2()
{
    int n;
    cout << "Array size = ";
    cin >> n;
 
    if (n <= 0)
    {
        cout << "Error (n<=0)";
    }
    else
    {
        int *X = new int[n];
        int *Y = new int[n];
        for (int i = 0; i < n; i++) // Заполнение массива X
        {
            cout << "X[" << i << "]= "; cin >> X[i];
        }
        cout << endl;
 
        for (int i = 0; i < n; i++) // Вывод массива X
        {
            cout << X[i] << " | ";
        }
        cout << endl;
 
        auto tmp = n - 1;
        for (int i = 0; i < n; i++) // Заполнение массива Y
        {
            Y[2*i] = X[i];
            Y[2*i+1] = X[tmp];
            tmp--;
        }
        cout << endl;
 
        for (int i = 0; i < n; i++) // Вывод массива Y
        {
            cout << Y[i] << " | ";
        }
        cout << endl;
 
        ofstream f;
        f.open("ArrY.txt");
        for (int i = 0; i < n; i++) // Запись в файл
        {
            f << Y[i] << " | ";
        }
        f.close();
 
        delete[] X, Y;
    }
}
0
 Аватар для madperez
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
26.05.2019, 14:11
Я думаю что второй массив должен быть в 2 раза больше
Миниатюры
В новый массив поместить элементы исходного массива в указанном порядке  
0
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 49
26.05.2019, 17:33  [ТС]
Я вот пробую изменить в вашем коде некоторые моменты. Например не могу изменить сортировку. В условии надо, чтобы выводилось сначала все Четные числа, потом все Нечетные числа, а у вас выводит наоборот.
0
 Аватар для madperez
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
26.05.2019, 17:43
z0r, ну смотри, есть массив с числами, сначала перезаписывается первое число, потом последнее, потом втрое, затем предпоследнее и тд,
И если после этого сделать сортировку, то получится так: 1 1 2 2 3 3 и тд.а потом вывести не четные и четные? Я не понимаю задачу! Тебе дали задачу в универе или на курсах? Скажи полностью задачу
0
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 49
26.05.2019, 18:40  [ТС]
Дан массив, нужно запихнуть в другой массив сначала все четные числа первого массива, а потом все нечетные числа
Н/Р: x[i]={1;6;5;8}. после запуска компилятора: y[i]={6;8;1;5}
0
 Аватар для madperez
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
26.05.2019, 18:50
Сделай 2 цикла, один только четные перезаписывай, а потои не четные
0
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 49
27.05.2019, 11:22  [ТС]
Помогите, при вводе n=3; a[i]={1,6,5}; Выводит в файл 1 5 6 6 5 1. Должен вывести 6 1 5. Т.е. должен вывести сначала четные, потом нечетные числа. Спасибо заранее!
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
50
51
52
53
54
55
56
57
58
59
60
61
#include <bits/stdc++.h>
using namespace std;
int main() 
{
    ofstream f_output;
    setlocale(LC_ALL, "rus");
    int N;
    cin>>N;
    int *arr=new int[N];
    for (int i=0;i<N;i++) 
    {
        cin>>arr[i];
    }
    int count=1;
    int p=N;
    int t=0;
    int count2=1;
    for (p=N,t=0;p>0,t<N;) 
    {
        if (count%2!=0) 
        {
            t++;
            count2++;
        }
        else 
        {
            p--;
            count2++;
        }
        count++;
    }
    count=1;
    p=N;
    t=0;
    int*arr2=new int[count2];
    for (int i=0,p=N-1,t=0;p>=0,t<=N;i++) 
    {
        if (count%2!=0) 
        {
            
            arr2[i]=arr[t];
            t++;
        }
        else 
        {
            arr2[i]=arr[p];
            p--;   
        }
        count++;  
    }
    f_output.open("vivod.txt");
    for (int i=0;i<count2;i++) 
    {
        f_output<<arr2[i]<<" ";
    }
    delete[]arr;
    delete[]arr2;
 
    //_getch();
    f_output.close();
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.05.2019, 01:05
Цитата Сообщение от madperez Посмотреть сообщение
Я думаю что второй массив должен быть в 2 раза больше
размеры массивов одинаковы. из исходного массива Х0, Х1,....,Xn-1, Xn нужно получить массив Х0, Хn,X1, Xn-1....

кроме того, в условии не указано, но размер массива должен быть чётным
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    int n;    
     
    do
    {
    cout << "Enter even n: "; cin >> n;
    if (n%2!=0) cout << "n - even  Repeat please...\n";
    }
    while (n%2!=0);
    
        int *X = new int[n];
        int *Y = new int[n];
        
    cout << "Enter " << n << " elements:\n";   
    for (int i = 0; i < n; i++)         
        cin >> X[i];         
    cout << "\n";       
        
    for (int i = 0; i < n/2; i++) 
    {
        Y[2*i]=X[i];
        Y[2*i+1]=X[n-1-i];            
    }  
    
    ofstream f("myfile.txt");
    for (int i = 0; i < n; i++) 
    {
        //cout << Y[i] << " ";
        f << Y[i] << " ";
    }    
    cout << "\n";
 
    f.close();
 
    delete[] X;
    delete[] Y;
system("pause");
return 0;
}
0
 Аватар для madperez
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
28.05.2019, 01:14
Yetty, Ну не знаю, зачем себя ограничивать четными массивами, и почему это они должны быть одинаковыми, если массив например из 3 значений, 1 2 3 то должно получится 1 3 2 2 3 1
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.05.2019, 04:04
z0r,
Цитата Сообщение от z0r Посмотреть сообщение
Пользователь вводит размер n динамического массива Х
в этом случае массив состоит из элементов X0,X1,....,Xn-1

в тоже время
Цитата Сообщение от z0r Посмотреть сообщение
Х0, Хn, X1, Xn-1...,
т.е. в записи на один элемент больше: X0,X1,....,Xn-1,Xn => условие некорректно. уточняйте условие задачи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2019, 04:04
Помогаю со студенческими работами здесь

Заменить заданные элементы исходного массива согласно условию и сформировать новый массив
дан массив a(14). заменить все нечетные элементы с номером индекса и составить массив Б

Записать в новый массив все элементы исходного массива, кратные заданному числу
При помощи случайных чисел ввести одномерный массив , состоящий из 100 элементов .Записать в отдельный массив все его элементы кратные 5....

Записать в новый массив все элементы исходного массива, кратные заданному числу
Напишите понятным языком.:cry: При помощи случайных чисел ввести одномерный массив,состоящий из 100 элементов. Записать в отдельный...

Сформировать из исходного массива новый, разместив в нем элементы исходного массива, отсортированные по три
Здравствуйте! Нужна ваша помощь. Пользователем вводятся вещественные числа (не больше 100) сформировать из исходного массива новый,...

Копировать все элементы исходного массива в новый массив, предварительно изменив их согласно условию
Дан массив m. Надо переписать в массив n, где каждый элемент равен m*(сумма квадратов от 1до7). Например, массив m = { 3, 5, 2, 1 }; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru