Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
6 / 6 / 1
Регистрация: 05.06.2016
Сообщений: 61

Как перевернуть одномерный массив?

19.07.2016, 17:02. Показов 4264. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>;
using namespace std;
 
int main()
{   
    const int n=3;
    int myArray[n]={1,2,3};
    for (int i=0; i<n; i++){
    cout<<"Massiv "<<myArray[i]<<endl;
    }
    for (int i=3; myArray[i]<n-1; i--){
        int a=i;
        myArray[i]=a;
    cout<<"Sort "<<myArray[i]<<endl;
    }
        
 
    return 0;
}
Ошибка: "Stack around the variable myArray was corrupted"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2016, 17:02
Ответы с готовыми решениями:

Перевернуть одномерный массив
Народ. Помогите пожалуйста с программой. Нужно перевернуть одномерный массив одним из простых способов. Спасибо.

Перевернуть одномерный и двумерный массив
Перевернуть одномерный массив. Перевернуть двумерный массив

Дан одномерный массив из целых чисел. Перевернуть его
Дан одномерный массив из целых чисел. Перевернуть его.

8
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
19.07.2016, 17:06
Цитата Сообщение от Overloading Посмотреть сообщение
for (int i=3
Последний индекс у массива равен 2, а не 3
Но, если Вы хотели поменять местами 1 и 3 элемненты:
C++
1
2
3
int a=myArray[0];
myArray[0]=myArray[2];
myArray[2]=a;
0
 Аватар для shilko2013
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
19.07.2016, 17:13
zss, или swap(a[0],a[2]);
0
6 / 6 / 1
Регистрация: 05.06.2016
Сообщений: 61
19.07.2016, 17:24  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>;
using namespace std;
 
int main()
{   
    const int n=3;
    int myArray[n]={1,2,3};
    for (int i=0; i<n; i++){
    cout<<"Massiv "<<myArray[i]<<endl;
    }
    for (int i=2; myArray[i]>i; i--){
        int a=i;
        myArray[i]=a;
    cout<<"Sort "<<myArray[i]<<endl;
    }
        
 
    return 0;
}
Получилось что я вывел номера ячеек а не х значения ;/
Massiv 1
Massiv 2
Massiv 3
Sort 2
Sort 1
Sort 0
Press any key to continue . . .
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
19.07.2016, 17:32
Overloading,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>;
using namespace std;
 
int main()
{
    const int n = 10;
    int myArray[ n ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 
    cout << endl << "Massiv: ";
    for( int i = 0; i < n; i++ )
        cout << myArray[ i ] << " ";
    
    int first = 0;
    int last = n;
    while( ( first != last ) && ( first != --last ) )
        std::swap( myArray[ first++ ], myArray[ last ] );
 
    cout << endl << "Massiv: ";
    for( int i = 0; i < n; i++ )
        cout << myArray[ i ] << " ";
    return 0;
}
P.S. Алгоритм добросовестно позаимствован с реализации std::reverse
1
6 / 6 / 1
Регистрация: 05.06.2016
Сообщений: 61
19.07.2016, 17:45  [ТС]
Спасибо, но слишком сложно.
Интересует как вывести значение элемента, а не номер ячейки.
Massiv 1
Massiv 2
Massiv 3
Sort 2=3
Sort 1=2
Sort 0=1
0
 Аватар для shilko2013
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
19.07.2016, 18:15
C++
1
2
3
4
5
6
7
int a[3] = { 1,2,3 };
    for (int i = 0; i < 3; ++i)
        cout << a[i] << " ";
    swap(a[0], a[2]);
    cout << endl;
    for (int i = 0; i < 3; ++i)
        cout << a[i] << " ";
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
19.07.2016, 18:31
Цитата Сообщение от Overloading Посмотреть сообщение
Спасибо, но слишком сложно.
Я и так старался написать в СИ стайле, чтобы вам было понятно. Я бы как-то так написал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
 
int main()
{   
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 
    auto print = [](const int x){ std::cout << x << " ";} ;
    std::for_each( std::begin( arr ), std::end( arr ), print );
    std::reverse( std::begin( arr ), std::end( arr ) );
    std::for_each( std::begin( arr ), std::end( arr ), print ); 
}
1
 Аватар для shilko2013
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
19.07.2016, 19:25
rikimaru2013, Я тоже люблю лямбдочки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2016, 19:25
Помогаю со студенческими работами здесь

Как сложить массив чтоб получился одномерный массив?
Например есть 3х мерный массив, как сложить его строки чтоб получился одномерный массив B (1 строка будет 1 элементом массива В). void...

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов)
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Как создать массив в функции и в функции перевернуть его?
В этой задаче от вас потребуется написать функцию void reverse_array(int* A, int size) { ... }, которая будет переворачивать массив A, в...

Перевернуть массив
Дан массив размерности n. Заполнить массив случайными числами в диапазоне . Перевернуть массив: a↔a, a↔a и т.д. Для работы с...

Перевернуть массив
В завершении это программы нужно «перевернуть массив» - поменять первый элемент с последним, второй с предпоследним и т.д, но никак не...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru