Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
AlexHolmes
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 77
1

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

18.04.2014, 17:13. Просмотров 1009. Ответов 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]);
}
Пожалуйста, подскажите как исправить ошибку, чтоб все верно работало.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 17:13
Ответы с готовыми решениями:

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

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

Вставка элемента в массив
Вставить число k перед всеми элементами массива, которые больше k.

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

Gcc вставка элемента в двумерный массив
Как вставить элемент в массив, заполненный random числами ? ms= 0 получается нечто другое... ...

2
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
18.04.2014, 17:35 2
Лучший ответ Сообщение было отмечено AlexHolmes как решение

Решение

Цикл сдвига с неправильным условием. Надо так:
C++
1
               for(i=n; i>c; i--) A[i]=A[i-1];
И датчик случайных чисел не забывай инициализировать, а то всё время одно и тоже в массиве.
1
AlexHolmes
1 / 1 / 0
Регистрация: 14.11.2013
Сообщений: 77
18.04.2014, 17:48  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Цикл сдвига с неправильным условием. Надо так:
;
Спасибо большое))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 17:48

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

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

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


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

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

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