Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
#1

Из массива удалить минимальное число элементов так, чтобы оставшиеся шли по возрастанию - C++

12.01.2013, 02:05. Просмотров 2651. Ответов 40
Метки нет (Все метки)

Из массива удалить минимальное число элементов так, чтобы оставшиеся шли по возрастанию.
на языке С++, через цикл for, самым легким способом, я только начинаю учить язык
пожалуйста..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 02:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из массива удалить минимальное число элементов так, чтобы оставшиеся шли по возрастанию (C++):

Из массива удалить минимальное число элементов так, чтобы оставшиеся шли по возрастанию - C++
Объясните пожалуйста как можно подробнее,как работает эта программа?(желательно все циклы и строки) #include <iostream> using...

Вычеркнуть минимальное количество чисел, чтобы оставшиеся шли в порядке возрастания (дин. программирование) - C++
Написать программу, которая использует метод динамического программирования. Даны N целых чисел X1,X2, . . . ,XN (1 <= N <= 10000, 1 <=...

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

Требуется вычеркнуть минимально возможное количество чисел так, чтобы оставшиеся числа шли в порядке возрастания - C++
27. Дана последовательность из N целых чисел, среди которых нет двух одинаковых. Требуется вычеркнуть минимально возможное количество чисел...

Удалить элементы в массиве так, чтобы оставшиеся образовывали возрастающую последовательность - C++
Удалить в заданном массиве действительных чисел «лишние» (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую...

Сортировка массива вставкой, чтобы четные числа шли по возрастанию, а нечетные по убыванию - C++
Всем привет! Есть задача отсортировать массив таким образом, чтобы четные числа шли в нем по возрастанию, а нечетные по убыванию. Числа...

40
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:15 #2
Что значит удалить из массива? Массив это последовательность битов, условно пронумерованных группами... Можно только пересоздать массив с новой размерностью, если хочешь свободное удаление каждого его элемента, то лучше посмотреть в сторону двусвязного списка...
1
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
12.01.2013, 02:19  [ТС] #3
Допустим задан следующий массив
1 2 5 6 3 4 4 5 9
по условию задачи в массиве должно остаться
1 2 5 6 9

Добавлено через 44 секунды
удаленные заменить "0"
0
Kuzia domovenok
2117 / 1946 / 190
Регистрация: 25.03.2012
Сообщений: 6,750
Записей в блоге: 1
12.01.2013, 02:24 #4
а что, попроще задачки для изучения языка не мог взять? Полно же книжек! Тут не всё так просто.
Можно сделать цикл, конечно
C++
1
2
for(i=0; i<n-1; i++)
if (a[i]>a[i+1]) remove(i);
Но это решение, ясен пень, не минимальное число элементов удалит.
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:28 #5
А так все просто:
C++
1
2
3
4
5
6
7
for(int i = 0; i < <array_size> - 1; i++) {
int position;
if(array[i] >= array[i+1]) {
 position = i;
 здесь создаешь динамический массив, с размерность на один меньше и циклом while копируешь все элементы, кроме [position]
}
}
В итоге на выходе получишь динамический массив с возрастающими числами.

Добавлено через 1 минуту
Код не претендует на изящность и быстродействие, а так же на грамотную выборку чисел для удаления, но с помощью for - это, по-моему, проще всего.
0
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
12.01.2013, 02:29 #6
To Kuzia

Это вообще никакое не решение.
Вот простой контрпример.

100, 3, 2, 101, 102
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:29 #7
Цитата Сообщение от VlaDdislav Посмотреть сообщение
Допустим задан следующий массив
1 2 5 6 3 4 4 5 9
по условию задачи в массиве должно остаться
1 2 5 6 9

Добавлено через 44 секунды
удаленные заменить "0"
Раньше не мог написать?!
0
Kuzia domovenok
2117 / 1946 / 190
Регистрация: 25.03.2012
Сообщений: 6,750
Записей в блоге: 1
12.01.2013, 02:30 #8
Цитата Сообщение от contedevel Посмотреть сообщение
А так все просто:
в том то и дело, что не факт, что верно.
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:31 #9
Сделай как написали, только в
C++
1
if(....) {array[i] = 0;}
0
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
12.01.2013, 02:33  [ТС] #10
Цитата Сообщение от contedevel Посмотреть сообщение
Раньше не мог написать?!
извени)
сможешь помочь?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:33 #11
Если хочешь, чтобы программа работала корректно, то for лучше не использовать, иначе код будет очень объемный и запутанный.
0
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
12.01.2013, 02:36  [ТС] #12
можешь пожалуйста дать код, а то я совсем чтот запарился..

Добавлено через 1 минуту
я ток for и while учил
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:43 #13
C++
1
2
3
4
5
for(int i = 0; i < <array_size> - 1; i++) {
if(array[i] >= array[i+1]) {
 array[i] = 0;
}
}
Думаю, для большинства случаев будет корректно выполнятся, хотя честно не могу сейчас точно рассмотреть все случаи - сплю уже

Да, где <array_size> - это нужно размер массива указать любым способом...

Добавлено через 3 минуты
Извини, не пиши этот код, сейчас нормальный выложу...
1
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
12.01.2013, 02:48 #14
Как минимум, тут необходимо найти все промежутки монотонности, но и все равно до решения будет еще далеко.
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
12.01.2013, 02:51 #15
Числа только положительные или нет?
0
12.01.2013, 02:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 02:51
Привет! Вот еще темы с ответами:

Удалить из массива число, у которого наибольшая сумма цифр и отсортировать оставшиеся элементы - C++
Задан массив целых чисел х. Удалить из него число,у которого наибольшая сумма цифр. Поменять местами 2 наибольших элемента в массиве....

Переставить цифры числа так, чтобы получилось минимальное возможное число - C++
Дано натуральное число n. Необходимо переставить его цифры таким образом, чтобы получилось минимальное возможное число без ведущих нулей.

В каждом столбце обнулите минимальное количество элементов так, чтобы сумма элементов столбца не превышала заданную - C++
Помогите решить при помощи функций.плиссзО_о Пусть дана матрица А(n x m), состоящая из натуральных чисел. В каждом столбце обнулите...

Переставить строки в массиве так, чтоб они шли по возрастанию их сумм - C++
Помогите написать программу Переставить строки в массиве так, чтоб они шли по возрастанию их сумм.


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

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

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