![]() |
|
Модераторы: bsa |
![]()
|
|
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
Привет всем
Задание такого типа: В одномерном массиве, состоящем из N целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного пулю. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине — элементы, стоявшие в нечетных позициях. Вот решение:
Нужно сделать тоже самое через указатели. Не могли бы вы мне помочь с этим? (почему я не сделал сам? да потому что надоело искать в сети нормального объяснения дин. массивов, уж лучше на примере пойму) Это сообщение отредактировал(а) mgkit - 15.4.2009, 18:23 |
|||
|
||||
| NDQuattro |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
имеешь массив Array из n элементов. или же с помощью функции calloc или malloc:
В этом случаее включи еще malloc.h в чем неясность? Это сообщение отредактировал(а) NDQuattro - 15.4.2009, 18:34 |
||||
|
|||||
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
мм... На сколько я понимаю(из прочитанного), указателю не нужно знать из скольких элементов состоит массив, просто вводишь и он записывает в определённую ячейку памяти... Так что я вообще не понимаю, причём тут n и что такое "double" тоже плохо представляю...
|
|||
|
||||
| NDQuattro |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
double это вещественный тип, как и флоат.
Имеется ввиду указатель на память размером n (данного типа). Это сообщение отредактировал(а) NDQuattro - 15.4.2009, 18:43 |
|||
|
||||
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
Так, чувствую придется думать самому |
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
что бы понять что такое динамический массив с начало надо разобраться что такое указатель !
и если чесно то в каждой книге для начинаюших С++ теме указателей отведено очень большое внимание .... а как разберёшся что такое указатель динамические масивы станут гараздо яснее ) Это сообщение отредактировал(а) Remiznik - 15.4.2009, 18:58 |
|||
|
||||
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
Две книги на руках "Начальный курс С и С++" Б.И. Березин С.Б.Березин(забавно, братья скорее всего) и "С/С++ и Borland C++ Builder для студента" Борис Пахомов. С указателями вроде понял, а вот как выполнять операции с массивом с помощью них не воткнул, т.к. почти везде объясняется с помощью строк. Я понимаю что строки это массив char, но всё же...
|
|||
|
||||
| NDQuattro |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
||||
|
||||
| Anikmar |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Вот строка из вашего кода:
Вы там работаете с массивом целых чисел а. Теперь делаем так:
Теперь у вас динамический массив, причем ничего в коде менять не надо, только в конце необходимо освободить память, добавив команду
Так понятнее? Это сообщение отредактировал(а) Anikmar - 15.4.2009, 19:11 |
||||||
|
|||||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
так что строкит что численые массивысуть одна и таже ...... есть указатель на первую ячаюку массива и с помошью [] ты можешь пермешать указатель к нужному элементу в массиве !
если ты разобрался с простым массиво в чом трудность динамических ? просто память под динамический выделяеться вовремя выполнения програмы и ты выбираешь тип элементов чтоб системе знала размер каждой ячейки памяти и указываешь количество элементов ... тоесть сколько ячеек памяти тебе нужно чтоб выделила система ! только из-за того что ты берёшь память у системы сам ты должен следить за тем чтоб после эиспользования память вернулась системе иначи будут траблы !!! но это уже отдельная тема ) Anikmar, хороший совет , но не плохо бы чтоб он понимал суть ) Это сообщение отредактировал(а) Remiznik - 15.4.2009, 19:16 |
|||
|
||||
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
мм...
А обращаться с помощью указателя к каждому элементу как? А разве не должны вводиться элементы без ограничения n? new int - что делает? |
|||
|
||||
| Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
В С++ контроль за границами массива ложится на программиста. По указателю - легко, почитайте арифметические действия с указателями. В вашем случае, например так:
И так далее. |
||||
|
|||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
если я не прав думаю колеги поправят )) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
||||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
согласен ! просто я видно не очень корректно наверно выразился ) |
|||
|
||||
| NDQuattro |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
перепоправлю, так пожалуй делайте:
|
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
смею предложить использовать std::vector или я не оригинален?
|
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
вери гуд предложение ! но как я понял создатель темы начинаюший а пропустить тему указателей и динамических массивов нельзя .... даже если ты их не юзаешь понимать как это всё устроено очень полезно ! и потому во многих книгах сначала описываться дин.масс а потом уже идёт рассказ об STL и Vector ) Это сообщение отредактировал(а) Remiznik - 15.4.2009, 19:46 |
|||
|
||||
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
Оно??
Добавлено через 7 минут и 39 секунд Вот с этим "std::vector" ты не оригинален... Я не понимаю и не хочу понимать его. Нам его не задавали. |
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
строка 24 !!
не обезательно что минимальный элемент будет первым ! так что для первого сравнения min надо задать заведомо меньше всех элементов в масиве ! ну если не хочешь знать только то что тебе задают ты далеко не пойдёш =)) Это сообщение отредактировал(а) Remiznik - 15.4.2009, 20:02 |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Во многих, но не во всех. В книге С++ Primer сначала учат работать с STL и векторами, а уже потом, между делом, объясняют что есть такие штуки, как дин.массивы и указатели. |
|||
|
||||
| NDQuattro |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
Remiznik, не понял, для чего? мы же далее перебираем по всему массиву. Главное что он принадлежит массиву.
|
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
дурак согласен ) исправлюсь =)) |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
||||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
mrbrooks,
Вот он настоящий быдлокодерский подход. Не стоит продолжать в том же духе. Должна быть тяга к познанию неизвестного. не обязательно. может он вообще ботан какой-нибудь(ака гуманитарий) (: тогда ему программирование только на уровне сдал зачёт - забыл, в сферу IT он не пойдет, значит в полку быдлокодеров не прибудет. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
будем на это очень надеяться |
|||
|
||||
| mgkit |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 15.4.2009 Репутация: нет Всего: нет |
Добавлено через 1 минуту и 35 секунд |
|||
|
||||
| NDQuattro |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 18.7.2008 Где: Украина Репутация: нет Всего: нет |
Наверное *бухать меньше надо -))) и по клубам и по клубам))
не один ты такой, я например из дому выхожу пол шестого и домой опять же пол шестого, только вечера ужо( |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |