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

Алгоритм вставки элемента в массив

20.04.2016, 18:47. Показов 6981. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана задача: Задан массив Y(k) целых чисел. Если он упорядочен, оставить его без изменения. Если массив не упорядоченный, то вставить после каждого второго элемента минимальный элемент массива. В отчете представить блок-схему алгоритма и код программы с окном результатов.
Сделал все,кроме вставки элемента в массив. Не могу понять,как это сделать.
во код, который получился:
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
float b,a[100];
int max;
int i,j,n,k,t;
cout <<"Количество элеменов массива =:";
cin >>n;
cout << "Введите массив а\n";
for (i=0;i<n;i++)
cin>>a[i];
t=1;
for (i=0; i<=n;i++)
if (a[i]<=a[i+1]) {t=0; break;};
if (t) cout <<"Массив упорядочен. "; 
else
max = a[0];
for (i = 0; i < n; i++) 
if (a[i] > max)
{ max = a[i];}
for (i=0;i<=n;i--)
 a[i]=a[i-1];
a[n]=max;
cout <<"Максимальный элемент массива:";
 std::cout<<max<<std::endl;
  cout<< "Конечный массив а:\n";
for (i=0;i<n;i++)
     std::cout<<a[i]<<std::endl;
cout << endl;
getch();
}
Как можно организовать вставку элемента?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.04.2016, 18:47
Ответы с готовыми решениями:

Алгоритм вставки элемента в односвязный линейный список
Мне нужен алгоритм вставки(в начало, в конец, по индексу) элемента в односвязный линейный список по русски, помогите пожалуйста, или ссылку...

Функция для вставки элемента в массив
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;malloc.h&gt; using namespace std; void insert(int *elem, int index,int *ptr,int *n) ...

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

3
165 / 164 / 124
Регистрация: 19.01.2016
Сообщений: 594
Записей в блоге: 1
20.04.2016, 19:10
Ruslan11kh, Вставить и удалить элемент из массива нельзя! Для того что бы вставить элементы, тебе нужно создать новый динамический массив, и в него уже копировать элементы из первого массива, ну и плюс добавлять новые... Т.е, для начала нужно будет определить размер второго массива, это размер предыдущего + его половина... Потом находишь минимальный элемент и вставляешь его по условию...

Добавлено через 6 минут
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
for (i = 0; i < n; i++)
if (a[i] > max)
{ max = a[i];}
Тут же вы находите максимальный элемент? хм... а по условию нужен минимальный...
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
for (i=0;i<=n;i--)
a[i]=a[i-1];
a[n]=max;
Вот это для меня вообще не понятно...
C++
1
i=0;i<=n;i--
А что в данном условии кода происходит?

Добавлено через 7 минут
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
if (t)
а это что за условие?

Добавлено через 2 минуты
Ruslan11kh, А вы уверены, что ваш код работает как надо? Или вообще работает

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от Ruslan11kh Посмотреть сообщение
Задан массив Y(k) целых чисел.
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
float b,a[100];
ахахахахахахах.... Какое-то не то задание вы выполнили вообще:rofl:

0
0 / 0 / 0
Регистрация: 22.03.2016
Сообщений: 14
20.04.2016, 20:01  [ТС]
С поиском элемента да,заглупил. Про float a[100] это обясняется так,что мы задаем массив большим размером, а затем меняем его на нужный. Программа не работает,поэтому нужна консультация. 1
i=0;i<=n;i--
на счет этого, это набросок.
Про if(t) Своебразная замена true,false так мне объяснили сделать.
0
165 / 164 / 124
Регистрация: 19.01.2016
Сообщений: 594
Записей в блоге: 1
20.04.2016, 22:00
Ruslan11kh,
1. При чем здесь тип float, если по условию целые числа?
2.
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
мы задаем массив большим размером, а затем меняем его на нужный
Что бы так не заморачиваться, для этого существуют динамические массивы...
C++
1
int *Array=new int [k];
3.
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
i=0;i<=n;i--
на счет этого, это набросок.
Это бред, а не набросок
4.
Цитата Сообщение от Ruslan11kh Посмотреть сообщение
Про if(t) Своебразная замена true,false так мне объяснили сделать.
Вам не правильно сказали, либо, вы не правильно поняли сказанное...
Вот вам, ваше задание...
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
62
63
64
65
66
67
68
69
70
71
#include<iostream>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL,"Russian");//руская консоль
    int k;//переменная для размера массива Array
    cout<<"Введите размер массива: ";
    cin>>k;//ввод размера массива
    int *Array=new int [k];//Создаем динамический массив и выделяем память под него
 
    cout<<"\nВведите элементы массива через пробел:\n";//Ввод элементов массива
    for (int i=0;i<k;i++)
     cin>>Array[i];
 
    bool flag=true;//выставляем флаг на "истина" для условия проверки массива на возрастание
    for (int i=0;i<k-1;i++)
        if (Array[i]<Array[i+1] && flag==true)flag==true;//если 0 элемент меньше 1 и флаг "истина" то оставляем флаг истина и сравниваем дальше(1-2,2-3,3-4...)
        else //если условие не соблюдено то выставляем флаг на "ложь"
        flag=false;
 
    bool flag_too=true;//тоже самое что и в проверке массива на возрастание, только здесь проверка на убывание
    for (int i=0;i<k-1;i++)
        if (Array[i]>Array[i+1] && flag_too==true)flag_too==true;
        else 
        flag_too=false;
 
    if (flag==true)//если flag равен истине, то массив упорядочен по возрастанию, выводим сообщение и заканчиваем программу...
    {
        cout<<"\nМмасив упорядочен по возрастанию!";
        cout<<endl;
        system("pause");
        return 0;
    }
    else if (flag_too==true)//если flag_too равен истине, то массив упорядочен по убыванию, выводим сообщение и заканчиваем программу...
    {
        cout<<"\nМасив упорядочен по убыванию!";
        cout<<endl;
        system("pause");
        return 0;
    }
    else// если не одно условие не соблюдено, то выводим сообщение и идем дальше
        cout<<"\nМассив не упорядочен!";
 
    int min=Array[0];//минимальный элемент на данный момент 0 элемент массива Array
    for (int i=1;i<k;i++)
        if (min>Array[i])min=Array[i];//если минимальный эемент больше 1 то min=первый элемент и т.д пока не найдется самый минимальный
 
    cout<<"\nМинимальный элемент массива равен: "<<min;//вывод минимального элемента
 
    cout<<endl<<"\nНовый массив: \n";
    int element=0;//переменная для нового массива
    int New_SIZE=k+(k/2);//новый размер нового динамического массива Array_new
    int *Array_new=new int [New_SIZE];//новый массив и выделение памяти для него
    for (int i=0;i<New_SIZE;i++)
    {
        if (i>0 && i%2==0 && element<New_SIZE)//условие, по заданию для вставки минимального элемента через 2 элемента
            {Array_new[element]=min;element++;}
        Array_new[element]=Array[i];element++;
    }
 
    for (int i=0;i<New_SIZE;i++)//вывод нового массива
        cout<<Array_new[i]<<" ";
 
    cout<<endl;
    delete [] Array;//освобождение памяти массива Array
    delete [] Array_new;//освобождение памяти массива Array_new
    system("pause");//задержка консоли
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2016, 22:00
Помогаю со студенческими работами здесь

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

Что не так в функции? Написать функцию вставки элемента в массив
Здравствуйте. Вообщем что то запутался, много вариантов уже перебрал. Вроде где выделено, там ошибка, а именно в том, что он у меня...

Помочь разобраться с программой. Написать функцию вставки элемента в массив
Здравствуйте. Можете помочь разобраться в программе? Ну хоть комментарии какие поставить.. Заранее спасибо. Написать функцию вставки...

Ошибка вставки элемента в массив
static int BinarySearch_Rec(int mas, int x, int left, int right) { int k =left + (right - left) / 2; ...

Составьте программу вставки в массив первого элемента, равного 7
2.Составьте программу вставки в массив первого элемента, равного 7. Составьте программу,пожалуйста


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru