0 / 0 / 0
Регистрация: 10.02.2019
Сообщений: 6
1

Осуществить перестановку элементов одномерного массива без использования дополнительного массива

25.02.2019, 21:55. Показов 4899. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая осуществляет перестановку элементов одномерного массива
(заполненный случайными числами в диапазоне от -5 до 5) без использования
дополнительного массива.
Например:
исходный массив 2 4 -2 0 -3 -1 0 1 1 3
измененный массив 3 1 1 0 -1 -3 0 -2 4 2
вот наработки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
    const int max_size = 10;
    int a[10];
    
    for (int i = 1; i < max_size; i++)
    {
        a[i] =rand()% 10-5;
    }
    for (int i = 1; i < max_size; i++)
    {
        cout << a[i] <<" "<<"\n";
    }
    cout << "--\n";
}
у меня программа просто выводит ряд рандомных чисел от -5 до 5,но как поменять их местами-к сожалению не знаю.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2019, 21:55
Ответы с готовыми решениями:

Как найти медиану неотсортированного массива (без использования дополнительного массива)
как найти медиану неотсортированного массива, при этом не используя дополнительных массивов и не сортируя его.

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

Работа с матрицами (с использованием/без использования дополнительного массива)
Дан двумерный массив целых чисел. В каждом его столбце найти: а) сумму нечетных элементов; б) количество положительных элементов; в)...

4
10 / 7 / 3
Регистрация: 29.11.2018
Сообщений: 14
25.02.2019, 22:21 2
Цитата Сообщение от Stas367 Посмотреть сообщение
измененный массив 3 1 1 0 -1 -3 0 -2 4 2
Расскажите больше об закономерности, а то я не врубаюсь, что делать и как сортировать.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.02.2019, 22:28 3
Лучший ответ Сообщение было отмечено Stas367 как решение

Решение

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    const int n=10;
    int a[n];
 
    for (int i = 0; i < n; i++)
      {
      a[i]=rand()%11 - 5;
      cout << a[i] << " ";
      }
    cout << "\n";
    
    for (int i = 0; i < n/2; i++)    
    swap (a[i],a[n-1-i]);
    
    for (int i = 0; i < n; i++)
    cout << a[i] << " ";
    cout << "\n";
    
system("pause");
return 0;
}
1
10 / 7 / 3
Регистрация: 29.11.2018
Сообщений: 14
25.02.2019, 22:31 4
Это пузырьковая сортировка по убыванию:
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
#include <iostream>
#include <ctime>
 
#define SIZE 10
 
int main()
{
    srand((int)time(NULL));
 
    int arr[SIZE];
 
    for (int i = 0; i < SIZE; i++)
    {
        arr[i] = rand() % 11 - 5;
    }
 
    // Алгоритм пузырьковой сортировки
    for (int i = 0; i < SIZE; i++)
    {
        for (int r = 0; r < SIZE; r++)
        {
            if (arr[i] > arr[r])
            {
                int temp = arr[i];
                arr[i] = arr[r];
                arr[r] = temp;
            }
        }
    }
 
    for (int i = 0; i < SIZE; i++)
        std::cout << arr[i] << '\n';
 
    system("pause");
    return 0;
}
Добавлено через 6 секунд
1
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
25.02.2019, 22:39 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
#include <algorithm>
#include <iostream>
#include <random>
 
/* заполнение произвольного одномерного контейнера с элементами произвольного типа произвольно распределенными случайными числами */
template <class ForwardIterator, class Distribution>
void random_array_fill(ForwardIterator begin, ForwardIterator end, Distribution&& dist) {
    std::random_device rd;
    std::mt19937 gen(rd());
    for (; begin != end; ++begin) *begin = dist(gen);
}
 
/* вывод содержимого одномерного контейнера в произвольный поток */
template <class Container, class Stream = std::ostream, class char_t = char>
void output_container(const Container & container, Stream & stream, const char_t * delimiter = " ", bool trailing_newline = true) {
    for (auto & item : container) stream << item << delimiter;
    if (trailing_newline) stream << std::endl;
}
 
int main() {
 
    int a[10];
    random_array_fill(std::begin(a), std::end(a), std::uniform_int_distribution<int>(-5, 5));
    std::cout << "Initial array: ";
    output_container(a, std::cout);
    shuffle(std::begin(a), std::end(a), std::random_device());
    std::cout << "Shuffled array: ";
    output_container(a, std::cout);
 
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Stas367 Посмотреть сообщение
но как поменять их местами-к сожалению не знаю.
Алгоритм shuffle поможет... Правда, препод может потребовать всё сделать с нуля
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2019, 22:39
Помогаю со студенческими работами здесь

Переставить элементы в обратном порядке без использования дополнительного массива
Дайте ответ на С++ ,пожалуйста.

Сожмите массив, выбросив каждый третий его элемент, без использования дополнительного массива
3. Дан массив из n элементов. Сожмите массив, выбросив каждый третий его элемент, без использования дополнительного массива. Выведите на...

Осуществить циклический сдвиг элементов одномерного массива на k позиций
работает правильно только если k=1 если больше то сдвиг делает правильно, но когда на место их переносит числа путает их, что не так? ...

С помощью рекурсивной функции осуществить вывод на экран элементов одномерного массива
С помощью рекурсивной функции осуществить вывод на экран элементов одномерного массива

Циклический сдвиг массива без использования вспомогательного массива
Ребят, помогите пожадуйста написать лабу...Времени ктастрофически не хватает, буду очень признателен Написать функцию, которая...


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

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

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru