С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
#1

Развернуть динамический массив - C++

03.10.2012, 22:03. Просмотров 786. Ответов 11
Метки нет (Все метки)

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

Char массив, развернуть отдельные слова - C++
Здравствуйте, Подскажите пожалуйста, мне нужно в предложении все слова развернуть в обратном порядке, но следование данных слов должно...

Развернуть одномерный массив на 180 градусов - C++
Развернуть одномерный массив на 180 градусов без использования if.

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

Развернуть матрицу, как спираль, в линейный массив - C++
Дана квадратная матрица, она заполняется рандомно и выносится на экран. Требуется преобразовать эту матрицу в линейный массив, начиная...

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

11
severus-x
18 / 18 / 0
Регистрация: 21.09.2012
Сообщений: 78
03.10.2012, 22:05 #2
Инициализация:
C++
1
int *arr = new int[100]; // массив integer из 100 элементов
про остальное не совсем понял, что нужно сделать
1
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
03.10.2012, 22:08  [ТС] #3
надо создать массив из n елементов(n задает пользователь), потом его надо "развернуть". токо надо ето через цикл сделать, типа переместить все елементы в стек(там чтото связано с последний зашел-первый вышел), а потом обратно в массив.
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
03.10.2012, 22:09 #4
Давайте по порядку. Пронумеруйте свои вопросы что ли.
0
severus-x
18 / 18 / 0
Регистрация: 21.09.2012
Сообщений: 78
03.10.2012, 22:11 #5
ozzy_b,
"Последний зашел - первый вышел"
LIFO

Добавлено через 1 минуту
А стек нужно сымитироватьс помощью массива чтоле?
0
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
03.10.2012, 22:12  [ТС] #6
вот одним словом условие задачи: "Перевернуть массив, т.е. записать первый элемент на месте последнего i т.д.". ето задача из дисциплины "Алгоритмы и структура даных", но кроме блок-схемы(где надо для всего етого использовать циклы) надо написать код(либо псевдо, либо с++).
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
03.10.2012, 22:34 #7
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
#include <iostream>
using namespace std;
int main()
{
    system("chcp 1251");
 
    cout << "n = ";
    int n;
    cin >> n;
    int * ar = new int[n];
    cout << "Зполните массив:\n";
    for (int i = 0; i < n; i++)
    {
        cout << i + 1 << ": ";
        cin >> ar[i];
    }
 
    int temp;
    int i, j;
 
    for (j = 0, i = n - 1; j < i; --i, ++j)
    {
        temp = ar[i];
        ar[i] = ar[j];
        ar[j] = temp;
    }
 
    for (int k = 0; k < n; k++)
        cout << ar[k] << " ";
 
    cout << endl;
 
        delete [] ar;
 
    system("pause");
    return 0;
}
если я правильно понял.в программе сначала задаете размер массива, а потом вводите его значения.после программа переворачивает массив и выводит его на экран.
1
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
03.10.2012, 22:36 #8
C++
1
2
3
4
5
6
for (int i = 0, end = array_size/2; i < end; ++i)
{
   int temp = array[i];
   array[i] = array[array_size-1-i];
   array[array_size-1-i] = temp;
}
опоздал)
1
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
03.10.2012, 22:42  [ТС] #9
ну теперь с самим массивом разобрался, но вот само "разворачивание не очень понял"(( да и что значит 5 строка?
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
03.10.2012, 22:51 #10
сначала мы присваиваем временной переменной последний элемент
C++
1
temp = ar[i];
затем последней ячейке присваиваем первый элемент
C++
1
ar[i] = ar[j];
а потом первой ячейке последний элемент (он хранится в temp)
C++
1
ar[j] = temp;
когда цикл делает вторую проходку,то происходит работа уже не с первым и последним элементом, а с вторым и предпоследним и т.д.
0
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
03.10.2012, 22:54  [ТС] #11
а почему в цикле і=n-1?
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
03.10.2012, 23:09 #12
потому что нумерация в массиве начинается с нуля, а поскольку элементов n и нумерация с нуля, то i пробегает по значениях с 0 до n - 1
0
03.10.2012, 23:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2012, 23:09
Привет! Вот еще темы с ответами:

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла - C++
задача: передать динамический массив в функцию, и записать в каждый элемент строку из файла. количество строк известно вот что у меня...

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы - C++
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE05. #...


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

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

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