9 / 9 / 4
Регистрация: 28.08.2012
Сообщений: 65
|
||||||
1 | ||||||
Написать функцию принимающую массив и возвращающую указатель на динамический массив21.03.2013, 12:11. Просмотров 3828. Ответов 14
Метки нет Все метки)
(
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел.
Как сделать так, чтобы функция принимала массив и возвращала указатель на динамический массив? Как вывести первые n максимальных элементов? n- вводится с клавиатуры. Моя попытка решения ниже:
0
|
|
21.03.2013, 12:11 | |
Написать функцию, принимающую массив структур Student Написать функцию, принимающую в качестве параметра одномерный массив |
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
||||||
21.03.2013, 21:06 | 2 | |||||
ashta, вот, вариант такой, отсортировать массив по убыванию и вывести n первых элементов, так как они и будут максимальными
2
|
9 / 9 / 4
Регистрация: 28.08.2012
Сообщений: 65
|
|
22.03.2013, 11:56 [ТС] | 3 |
Спасибо большое, Yoghurt92. Хорошая идея с сортировкой, только все равно получается, что не идеальна, т.к. вот например в следующем массиве http://screencast.com/t/uEVucVcYs7p должно по идее было бы вывести 78 95 82 (первые три максимальных элемента). Как это реализовать, не знаете?
0
|
8 / 3 / 2
Регистрация: 12.02.2013
Сообщений: 68
|
||||||||||||||||
22.03.2013, 12:42 | 4 | |||||||||||||||
я бы написал что-нибудь на подобие следующего:
Добавлено через 11 минут Хотя как по мне то гораздо удобнее использовать векторы и в функцию передавать ссылки на них, например:
1
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
||||||
22.03.2013, 14:11 | 5 | |||||
ashta, а по какому признаку определять максимальное? а если я вам скажу что первые три максимальные это 95, 82, 83? И я тоже буду прав
![]() ![]()
Добавлено через 2 минуты igor001, зачем создавать еще один массив? не легче просто выводить значения? по мне, так это лишнее...
0
|
8 / 3 / 2
Регистрация: 12.02.2013
Сообщений: 68
|
|
22.03.2013, 14:34 | 6 |
задача вернуть указатель на массив с n наибольших элементов, не указано что передаваемый массив нужно изменять так что получаеться нужно создавать новый
0
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
|
22.03.2013, 15:01 | 7 |
igor001, не прочитал первую часть, ну тогда да.
0
|
8 / 3 / 2
Регистрация: 12.02.2013
Сообщений: 68
|
|
22.03.2013, 15:05 | 8 |
щерт, извиняюсь за грубую ошибку. создавать указатель на локальную переменную и функцией возвращать указатель на нее нельзя, так как локальные переменные вызванные функцией размещаются в стеке и удаляются из него по завершении работы функции, так что указатель будет указывать хз куда. так что если ты хочешь чтобы функция вернула тебе указатель необходимо заранее его определить и передать в функцию, правда тогда можно его и не возвращать функцией имхо это бессмысленно так как ты внутри функции сам сможешь изменить данные, лежащие по указателю
0
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
||||||
22.03.2013, 15:14 | 9 | |||||
ashta, ну тогда вот с возвращение
igor001, у вас ошибка и в этом месте вы указали что возвращаете указатель(а мы знаем что массив - указатель на первый элемент) и тут вы разыменовываете его, вылезет ошибка что невозможно преобразовать int в int*... а вообще, можно просто сохранить возвращаемый указатель в другой массив уже в мейне
0
|
8 / 3 / 2
Регистрация: 12.02.2013
Сообщений: 68
|
|
22.03.2013, 15:22 | 10 |
отбой, тупанул снова, там ведь через new создается элемента, это ж не на переменную указатель, все норм должно быть
Добавлено через 1 минуту возможно, я не проверял то что написал, главное алгоритм верный но все же извиняюсь, давно с массивами динамическими не работал) Добавлено через 4 минуты я сам то кодить начал относительно недавно, месяца 4 всего, сча Страуструпа читаю, там векторы советуют юзать, хотя по началу сам только массивы использовал, теперь стараюсь пользоваться только векторами
0
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
|
22.03.2013, 15:28 | 11 |
igor001, я вот занимался по Дейтелям, вот закончил, начал stl для профессионалов читать, хоть и название громкое, очень доступно поясняется все, и тоже думал страуструпа читать, говорят для новичков тяжело сразу начинать...
0
|
8 / 3 / 2
Регистрация: 12.02.2013
Сообщений: 68
|
|
22.03.2013, 15:38 | 12 |
незнаю, вродь норм. я разобрался с указателями, ссылками, классами, а так же основы разработки программ
Добавлено через 2 минуты я просто до того как после универа на работу не устроился никогда не программировал, а здесь люди тоже не очень хорошо шарят, по началу учили, а сча уже фулл самообучение. я последние 2 месяца за неделю-две делаю план а потом набираюсь ума-разума из книг да инета) Добавлено через 53 секунды конечно, смотря на код, который я писал 3 месяца назад появляется желание выдернуть себе руки))
0
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
|
22.03.2013, 15:41 | 13 |
igor001, повезло, я сам тоже начал учить, но пока еще учусь, но у нас в городе джуниоры никому не нужны...
Добавлено через 30 секунд igor001, а что за задания дают?)
0
|
8 / 3 / 2
Регистрация: 12.02.2013
Сообщений: 68
|
|
22.03.2013, 15:47 | 14 |
да я на гос предприятие пошел в СКБ инженером-конструктором (на электронщика) а тут им в сектор прогеры нужны были, а я месяц перед тем как устраивался начал сам с++ пытаться учить, ну мне и дали квест написать прогу, которая читает по СОМ-порту из прибора набор байтов и раскладывает данные в таблицы на ПК
Добавлено через 51 секунду сейчас я уже основную часть проги реализовал
0
|
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
|
|
22.03.2013, 15:48 | 15 |
igor001, ну понятно
![]()
0
|
22.03.2013, 15:48 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Написать функцию, принимающую в качестве параметра массив целых чисел Написать функцию, принимающую параметрами 2 целых числа, и возвращающую сумму чисел из диапазона между ними написать функцию, возвращающую массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |