Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
AlexHolmes
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 77
#1

Вставка элемента в одномерный массив - C++

18.04.2014, 17:13. Просмотров 407. Ответов 2
Метки нет (Все метки)

Задан упорядоченный по возростанию массив целых чисел A [1: n] и число B. Для числа B найти такое место среди элементов массива А, чтобы после вставки числа В на это место упорядоченность массива не нарушилась. Если вследствие равенства между собой значений элементов массива А число В можно вставлять на разные места, то следует определить ближайшее к началу массива место. Эта задача называется задачей поиска места элемента.

У меня не выходит сама вставка элемента так, чтоб не нарушить последовательность. Новый элемент просто заменяет тот, который идет за ним.
Вот мой код.
C++ (Qt)
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int A[20],n=10,b,c,tmp, k;
int i;
 
printf("Vvedit b:\n");
scanf("%d",&b);
 for(i=0;i<n;i++)
  A[i]=rand()%(110)-20;
  printf("\nPochatkovi massiv:\n");
   for(i=0;i<n;i++)
    printf("X[%d]=%d\n",i,A[i]);
    printf("\n***Vporadkovano za zrostanyam*****\n");
     for(k = n-1; k >=0; k--)
      for(i=0; i < k ; i++)
       if(A[i]>=A[i+1])
       {
       tmp=A[i];
       A[i]=A[i+1];
       A[i+1]=tmp;
       }
        for(i=0;i<n;i++)
         printf("A[%d]=%d\n",i,A[i]);
          printf("*************************************\n");
          c=-1;
          i=0;
          while ((c<0) && (i<n))
           if (b<=A[i])
            c=i;
            else
             i++;
              if (c<0)
              c=n;
              printf("Chislo mae stoyati na %d pozicii\n",c);
              printf("*************************************\n");
               for(i=n;i<=0;i--)
                if (i>c)
                A[i]=A[i-1];
                A[c]=b;
                 for(i=0;i<=n;i++)
                  printf("A[%d]=%d\n",i,A[i]);
}
Пожалуйста, подскажите как исправить ошибку, чтоб все верно работало.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 17:13     Вставка элемента в одномерный массив
Посмотрите здесь:

Вставка в одномерный массив произвольного элемента. - C++
Переменные объявлены глобально. Вот функции для получения рандомного числа и самой вставки. int GetRandom1(int rand_count) { using...

Вставка в одномерный массив - C++
Есть массив cin.getline(m_text, 256) Например : &quot;После завтра я еду домой.&quot; Нужно после слова &quot;еду&quot; вставить &quot;на поезде&quot; ...

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

Вставка заданного числа в массив после k-го элемента - C++
Написать программу, вставляющую заданное число m в целочисленный массив A после k-го элемента. Число для вставки m и номер k-го элемента...

Вставка нового элемента в массив (дополнить код) - C++
Здравствуйте, нужна помощь. Суть такова имеется Куча, и туда нужно Вставить новый элемент, код имеется но не такой как надо :( Сделал, и...

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

Вставка нового элемента в упорядоченный массив (без нарушения упорядоченности) - C++
Нужно вставить в упорядоченный по убыванию массив заданный элемент, чтобы не нарушилась упорядоченность. Что не так с кодом? Помогите...

Вставка нового элемента в двумерный динамический массив дополнить код - C++
Здравствуйте ребята, опять нужна помощь по вставке элементов в двумерный динамический массив. А именно вставить рядок заполненный числами...

Запись в одномерный массив не с нулевого элемента - C++
Добрый день, форумчане. Уже как с неделю учусь CPP и пишу свою программу для вычисления геометрической прогрессии. Решил...

Одномерный динамический массив, передача в функции, добавление и удаление элемента - C++
Разбираю одномерные динамические массивы. Пока всё просто, пока и не возникает вопросов. Массив объявил, проинициализировал, сгенерировал и...

Одномерный динамический массив, найти значение и позицию максимального элемента - C++
Дан одномерный динамический массив размерностью N, найти значения и позицию максимального элемента

Найти номер последнего максимального элемента последовательности используя одномерный массив - C++
2 Задача:Дана последовательность из N действительных чисел найти номер последнего максимального элемента используя одномерный массив.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5252 / 4572 / 1535
Регистрация: 14.04.2014
Сообщений: 18,183
18.04.2014, 17:35     Вставка элемента в одномерный массив #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цикл сдвига с неправильным условием. Надо так:
C++
1
               for(i=n; i>c; i--) A[i]=A[i-1];
И датчик случайных чисел не забывай инициализировать, а то всё время одно и тоже в массиве.
AlexHolmes
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 77
18.04.2014, 17:48  [ТС]     Вставка элемента в одномерный массив #3
Цитата Сообщение от nmcf Посмотреть сообщение
Цикл сдвига с неправильным условием. Надо так:
;
Спасибо большое))
Ответ Создать тему
Опции темы

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