2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
||||||
1 | ||||||
Массивы. Найти неповторяющееся число02.02.2014, 00:04. Показов 2771. Ответов 28
Метки нет (Все метки)
Задача взята с форума.
0
|
02.02.2014, 00:04 | |
Ответы с готовыми решениями:
28
найти неповторяющееся число Найти неповторяющееся число в массиве Найти число, входящее во все массивы Массивы. Найти четвертое отрицательное число |
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
02.02.2014, 00:12 | 2 |
В голову приходит два способа решения:
1. Решение "в лоб", неоптимальное - в цикле пробегаться по массиву столько раз, сколько цифр в переданном массиве (для каждого символа - дополнительный цикл) 2. Альтернатива - динамические массивы (ну или векторы, например, раз уж c++). В цикле пробежаться сначала один раз по полученному массиву, добавить в динамический массив в качестве ключа, значение по умолчанию - ноль. (т.е., наподобие arr[8] = 0. После чего отдельным циклом пробежаться, если существует arr[9], то arr[9]++ Как-то так, код писать лень.. З.Ы. по-любому, есть и еще реализации (возможно, лучше этой)..
1
|
02.02.2014, 00:21 | 3 |
А в чём проблема? Вызывайте NotTwin с нужными параметрами из функции Massiv.
Ещё не понятно, куда функция Massiv возвращает значение последнего элемента массива - это значение нигде не используется. В таком случае вместо int тип функции должен быть void (т.к. она, фактически, процедура).
1
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
|
02.02.2014, 00:28 | 4 |
можно циклически посчитать сумму S1 всех чисел, при этом каждое число добавлять в контейнер "set"...в контейнере будут записаны числа в единичном экземпляре..находим сумму квадратов S2 каждого числа из set и от нее отнимаем сумму S1
num = S2 - S1
1
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
02.02.2014, 00:28 [ТС] | 5 |
хм, черт, пробовал так до этого, но не получалось. Спасибо за волшебный пинок!)
Теперь ругается на неинециализированные ptr'ы, но мне главное с этим было разобраться, теперь уже схема работы...) спасибо Вам большое)
0
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
|
02.02.2014, 00:30 | 6 |
в вашем коде в функции NotTwin() непонятно откуда появился int *A
0
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
02.02.2014, 00:33 [ТС] | 7 |
кстати, ребят, а КАК посоветуете ООП изучать? вообще с чего начинают? курс каких-то базовых задач или же что-то более серьезное?
Добавлено через 1 минуту ну создание динамического массива
0
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
||||||
02.02.2014, 00:34 | 8 | |||||
или отсортировать массив и сравнивать соседние элементы
0
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
02.02.2014, 00:35 [ТС] | 9 |
0
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
|
02.02.2014, 00:37 | 10 |
int *A находится в области видимости функции int Massiv()
Добавлено через 1 минуту ну напишите тогда сортировку используя указатели
0
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
02.02.2014, 00:42 [ТС] | 11 |
ну да...а почему нет? тем более теперь когда с массивом А работает только функ-я Massiv, которая передает ее в NotTwins...по крайней мере до этого заносилось и выводилось все правильно
0
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
|
02.02.2014, 00:48 | 12 |
откуда А в функции int NotTwin?? он в ней нигде не объявлен и не является аргументом функции? функция даже не знает что это.
в каком месте она что то передает? приведите тот участок кода
0
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
02.02.2014, 00:53 [ТС] | 13 |
так в том то и дело, у меня вопрос был в том, как правильно вызвать функции и передать параметры из Massiv в NotTwin(), поэтому в этом варианте кода нигде это еще и не происходит...
0
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
|
02.02.2014, 00:58 | 14 |
0
|
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
|
||||||
02.02.2014, 01:08 | 15 | |||||
RayPas
Кликните здесь для просмотра всего текста
В main вызовите только функцию Massiv(). А с указателями можете поиграться.
1
|
Комп_Оратор)
|
|
02.02.2014, 02:17 | 16 |
RayPas, после этой инструкции:
уже и неважно, что и как возвращать. Лучше всего, передать указатель на уже выделенную до места вызова память и размер массива (по ссылке можно), в функции сделать с этим всем, что-то приличное и вернуть void. А после вызова использовать и удалить.
1
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
02.02.2014, 02:21 [ТС] | 17 |
0
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
||||||
03.02.2014, 17:31 [ТС] | 18 | |||||
Ребят, а помогите собственно с продолжением. Не пойму несколько вещей(все внимания на функцию NotTwin() )
Идея в том моя, чтобы при сравнении значений двух указателей, цикл завершался как только встретит близнеца и первый переместится на следующее значение в массиве, т.е. продолжится внешний цикл for. но срабатывает неправильно. И еще, когда прохожу прогу по шагам и смотрю, что лежит в значениях указателей, то вижу, что как указатель(*ptr2) пройдет по всем заданным элементам массива, он забивается мусором и какими-то непонятными значениями. Почему это происходит? Объясните пожалуйста. и укажите в чем ошибка, что срабатывает неправильно
0
|
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
|
|
03.02.2014, 18:12 | 19 |
Не понял этот момент. Элемент массива сравнивется с размером массива?
ptr2 забъётся мусором, потому что ptr1 + 1 выйдет за границу массива.
0
|
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
|
|
03.02.2014, 18:20 [ТС] | 20 |
ага спасибо за ptr2. понял.
но, таким образом, хотел сделать так, чтобы изначально указатели не стояли на одном и том же элементе, иначе цикл не имеет смысла. ptr1 будет равен ptr2 ну а ptr1<size...думал так как раз-таки не выйдем за границу массива, сравнивая указатель с длинной массива...
0
|
03.02.2014, 18:20 | |
03.02.2014, 18:20 | |
Помогаю со студенческими работами здесь
20
Получить из массива случайное неповторяющееся значение Массивы: найти общее число съеденных пирожных и прогнозируемое число съеденных пирожных за 10 лет Случайное, неповторяющееся число Одномерные массивы. Найти число, встречающееся наибольшее количество раз Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |