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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
SanAlex
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 28
#1

Массивы и функции как параметры - C++

18.06.2013, 18:14. Просмотров 1327. Ответов 23
Метки нет (Все метки)

Из главной функции нужно вызвать промежуточную функцию с 3 параметрами - (введённый двумерный массив, кол-во элементов, функция).
Последний параметр действие(функция) которое нужно выполнить над массивом. Например заменить нулем все элементы столбца после минимального элемента.
Сложность у меня вызвало то что промежуточная функция должна выполнить это действие для конкретных элементов.
Например у меня выполнить действие для столбцов у которых последний элемент имеет чётное значение.
Как в промежуточной функции я должен уметь различить это, если я получаю целиков массив в параметрах?
При выполнении действия как то передавать ему нужный столбец как отдельную структуру?

Если писанина вся эта не ясна вот схема вызовов функций:

main -> промежуточная функция (3 параметра), определяются нужные столбцы -> функция(действие над выбранными столбцами)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 18:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы и функции как параметры (C++):

Массивы, как параметры функций - C++
Отрицательные элементы матриц A (5,4) , B (3,2 ) , C (4,4 ) записать в одномерный массив .

Как сделать выходные параметры у функции? - C++
мне нужно чтобы переменная s сохраняла свое значение после работы функции(которая на самом деле процедура, токо я не знал как по другому...

Как вызвать из 1 функции параметры другой? - C++
Всем привет! Собственно, вопрос в названии. Хочу написать 2 функции: первая отводит память под массив, а вторая этот массив...

Какими способами можно использовать функции класса B, как параметры функции Sub класса А? - C++
class A {... void Sub(...); ...} class B : ... { public: float f1(float); float f2(float); ...

Как работают приведенные функции, какие у них параметры? - C++
Доброго времени суток!!! Не знаю, как работают такие функции (какие параметры вводить, и что должно вывести): atoi() itoa() max()

Как задать параметры запуска (аргументы командной строки) функции main? - C++
Как их задать в процессе запуска? т.е. пользователь запускает приложение и указывает параметры запуска при этом. Где про них почитать...

23
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.07.2013, 23:06 #16
Цитата Сообщение от Nick Alte Посмотреть сообщение
компилятор усердно занимается
вот когда компилятор занимается такими преобразованиями это хорошо, а когда программист - плохо.
0
Nick Alte
Эксперт С++
1643 / 1015 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
16.07.2013, 23:16 #17
Цитата Сообщение от Tulosba Посмотреть сообщение
вот когда компилятор занимается такими преобразованиями это хорошо, а когда программист - плохо.
Не совсем так. Иногда такие преобразования нужны (в случае тех же динамических массивов, например), и их нужно делать именно программисту. И плохо это будет только в том случае, если он станет их делать раз за разом вместо того, чтобы сделать единожды.
0
SanAlex
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 28
28.09.2013, 16:23  [ТС] #18
Tulosba
вы писали:
2. Созданный в куче:
Код C++
1
2
3
4
int** a = new int*[10]; // Выделяем массив указателей на строки (одномерные массивы)
for( int i=0; i<10; ++i ) {
a[i] = new int[20] // Выделяем одномерный массив под каждую строку.
}

массив передаётся в функцию так:

1
void f( int** a );
А как этот двумерный массив будет описан в качестве формального параметра в заголовке функции?
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.09.2013, 17:36 #19
Цитата Сообщение от SanAlex Посмотреть сообщение
А как этот двумерный массив будет описан в качестве формального параметра в заголовке функции?
C++
1
void f( int** a );
1
SanAlex
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 28
28.09.2013, 17:47  [ТС] #20
Tulosba,
Блин, а как теперь к массиву обращаться внутри функции? Определённому элементу?
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.09.2013, 17:55 #21
SanAlex, a[i][j] конечно же
1
SanAlex
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 28
28.09.2013, 17:55  [ТС] #22
Не то спросил
Если объявляем так:
C++
1
void f( int** a );
Какой будет вызов?
и как обращаться к массиву внутри функции. Спасибо.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.09.2013, 17:57 #23
Цитата Сообщение от SanAlex Посмотреть сообщение
Какой будет вызов?
C++
1
2
3
int** a; 
// выделяем память (см. #12)
f( a ); // вызываем
0
SanAlex
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 28
28.09.2013, 17:59  [ТС] #24
Tulosba, спасибо большое!
0
28.09.2013, 17:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2013, 17:59
Привет! Вот еще темы с ответами:

Вычислить суммы с данной точностью е, используя указатели на функции, как параметры - C++
Используйте указатели на функции как параметры: \sum_{n=1}^{\infty}\frac{sin \, n}{n} \sum_{n=1}^{\infty}\frac{n}{e^n}

Чтение из файла, название передано как параметры функции main argc & argv - C++
Вообще дано задание - считать из файла чётные строки, название файла должно быть передано как параметр при запуске из командной строки.. ...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Как сделать динамические массивы вместо обычных? Используя функции - C++
Как сделать динамические массивы вместо обычных? Используя функции. Для введения одной матрицы нужна одна функция? т.е. чтобы ввести 2...


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

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

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