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

ошибка в процедуре вставки в упор. массив - C++

Восстановить пароль Регистрация
 
Курб
 Аватар для Курб
0 / 0 / 1
Регистрация: 28.12.2011
Сообщений: 31
14.05.2012, 01:04     ошибка в процедуре вставки в упор. массив #1
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
void insert (int a[],int &n,int x)
{ int i=n;
int j=n+1;
while (a[i]>x)
    a[j--]=a[i--];
a[j]=x;
if (j!=0)   
     while (j>=0)
          a[--j]=a[i--];
    n=n+1;
}
процедура работает для вставки в начало и в середину упорядоченного одномерного массива, при вставке в конец дублирует последнее число. Может алгоритм плох?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 01:04     ошибка в процедуре вставки в упор. массив
Посмотрите здесь:

На что нужно делать упор в изучении C++? C++
функция вставки элемента в массив C++
Двумерный массив рациональных чисел + среднее арифметическое чисел массива + сортировка методом вставки C++
Ассемблерные вставки, ошибка C++
C++ Ошибка в процедуре
C++ Написать функцию вставки элемента в массив. Помочь разобраться
Помочь разобраться с программой. Написать функцию вставки элемента в массив C++
Что не так в функции? Написать функцию вставки элемента в массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
14.05.2012, 01:53     ошибка в процедуре вставки в упор. массив #2
алгоритм плох. писать за пределы массива в строке 6 - очень плохо.
и как я понял параметр n у тебя не количество элементов в массиве, а количество-1. это сбивает с толку.
Yandex
Объявления
14.05.2012, 01:53     ошибка в процедуре вставки в упор. массив
Ответ Создать тему
Опции темы

Текущее время: 09:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru