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

Изменить порядок элементов в двух массивах на противоположный с использованием функции

15.03.2018, 03:58. Показов 1230. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать функцию для двух массивов сразу? Так же выбивает предупреждение "Stack around the variable 'n' was corrupted", якобы выхожу за границы массива.В чем ошибка ?

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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int f1(int k, int m[5], int n[10])
{
    int p;
    for (k = 1; k <= 5; k++)
    {
        p = m[5];
        m[5] = m[5 - k - 1];
        m[5 - k - 1] = p;
    }
    return p;
}
 
int main()
{
    srand(time(NULL));
    int i;
    int m[5], n[10];
    setlocale(LC_ALL, "Russian");
    cout << "Массив m[5]: ";
    for (i = 1; i <= 5; i++)
    {
        m[5] = 0 + rand() % 10;
        cout << m[5] << " ";
    }
    cout << endl;
    cout << "Массив n[10]: ";
    for (i = 1; i <= 10; i++)
    {
        n[10] = 0 + rand() % 10;
        cout << n[10] << " ";
    }
    cout << endl;
    m[5] = f1(5, &m[5], &n[10]);
    cout << m[5] << " ";
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2018, 03:58
Ответы с готовыми решениями:

Изменить порядок элементов массива на противоположный
В с++ есть команда, которая изменяет порядок элементов массива на противоположные?

Изменить порядок элементов массива X[8] Y[4] на противоположный
Есть код ,но тут для одного массива,а как для двух сделать? #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace...

Изменить порядок следования элементов массива на противоположный
Измените порядок следования элементов массива на противоположный.

5
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.03.2018, 04:32
Лучший ответ Сообщение было отмечено elsum как решение

Решение

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
#include <iostream>
using namespace std;
 
int Revers (int *Z, size_t n)
{
    int temp=0;
    for (size_t i = 0; i < n/2; i++)
    {    
    temp=Z[i];
    Z[i]=Z[n-1-i];
    Z[n-1-i]=temp;
    }
    return *Z;
}
 
int main()
{    
    int m[5], n[10];
        
    for (size_t i = 0; i < 5; i++)
    {
    m[i] = rand() % 10; 
    cout <<m[i]<<" ";       
    }
    cout <<endl;
    
    for (size_t i = 0; i < 10; i++)
    {
    n[i] = rand() % 10; 
    cout <<n[i]<<" ";       
    }    
    cout <<endl;
    
    Revers (m, 5);
    for (size_t i = 0; i < 5; i++)    
    cout <<m[i]<<" ";
    cout <<endl;
    
    Revers (n, 10);   
    for (size_t i = 0; i < 10; i++)    
    cout <<n[i]<<" ";   
    cout <<endl;
    
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 40
15.03.2018, 21:01  [ТС]
Спасибо. Можете объяснить, зачем здесь используется указатель и что значит тип size_t?
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
15.03.2018, 21:06
Цитата Сообщение от elsum Посмотреть сообщение
зачем здесь используется указатель
Массив в функцию обычно передают по указателю на первый элемент(даже если написать int Z[] по факту это будет int *Z, потому что просто передать массив нельзя, либо по ссылке либо по указателю либо по указателю на первый элемент).
Цитата Сообщение от elsum Посмотреть сообщение
и что значит тип size_t?
Неотрицательное целое число. Индексы массива всегда неотрицательные потому часто используют size_t вместо int который может хранить и отрицательные числа.
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 40
15.03.2018, 21:24  [ТС]
Все понял, кроме сути данной функции:
C++
1
2
3
4
5
6
7
8
9
10
11
int Revers (int *Z, size_t n)
{
    int temp=0;
    for (size_t i = 0; i < n/2; i++)
    {    
    temp=Z[i];
    Z[i]=Z[n-1-i];
    Z[n-1-i]=temp;
    }
    return *Z;
}
Почему здесь n/2 и что выполняет код?
C++
1
2
3
4
5
6
for (size_t i = 0; i < n/2; i++)
    {    
    temp=Z[i];
    Z[i]=Z[n-1-i];
    Z[n-1-i]=temp;
    }
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
16.03.2018, 00:24
Цитата Сообщение от elsum Посмотреть сообщение
Все понял, кроме сути данной функции...Почему здесь n/2 и что выполняет код?
обмен первого элемента с последним, т.е. Z[0] c Z[n-1], второго с предпоследним и т.д. пока не дойдём до середины массива (или до среднего элемента для нечётных n) - первая итерация цикла сохраняет значение первого элемента во временной переменной temp, затем первому элементу присваивается значение последнего элемента, а последнему - элементу значение temp (т.е. значение первого элемента), аналогично со вторым элементом и предпоследним и т.д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2018, 00:24
Помогаю со студенческими работами здесь

В каждой строке матрицы изменить порядок элементов на противоположный
Дана матрица C размером 56. Составить программу, осуществляющую перестановку элементов в каждой строке (столбце) так, чтобы первый элемент...

Во всех последовательностях положительных чисел изменить порядок элементов на противоположный
Помогите с данным заданием Во всех последовательностях положительных чисел изменить порядок элементов на противоположный Размер...

Во всех последовательностях положительных чисел изменить порядок элементов на противоположный
Во всех последовательностях положительных чисел изменить порядок элементов на противоположный. С помощью рандомайзера( проще говоря...

Изменить порядок следования всех элементов в стеке на противоположный по условию
Реализовать стек, в котором к описанию стека добавлена функция turn, которая меняет порядок следования всех элементов в стеке на...

Во всех последовательностях массива положительных чисел изменить порядок элементов на противоположный
Помогите с задачей !!! в с++ Создать массив целых чисел и заполнить его случайными значениями. Рзмерность массива – 100, диапазон...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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