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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где определён стандартный поток stdin? http://www.cyberforum.ru/cpp-beginners/thread905741.html
Где определён стандартный поток stdin, в какой библиотеке?. Смотрел в инете ничего не нашёл. ошибка такого рода: «stdin» undeclared (first use in this function).
C++ в массиве вычислить, номер элемента массива в массиве вычислить, номер элемента массива, ближайшего к среднеарифметического его значений, разницу элементов массива, расположенных между первым отрицательное и вторым положительным элементом http://www.cyberforum.ru/cpp-beginners/thread905737.html
C++ копирование содержимого, инвертирование строки, подсчет чисел в тексте, удаление слова, что начинаются с гласных
написать программу, которая копирует содержимое входного файла в выходной, инвертирует строку, подавая его в обратном виде, подсчитывает количество чисел в тексте, удаляет все слова что починаюця из...
C++ Заменить нечетные элементы вектора Т средним арифметическим элементов, которые делятся на 5 с остатком 3
Заданный вектор Т, состоящий из к целых чисел. Заменить нечетные элементы вектора Т средним арифметическим элементов, которые делятся на 5 с остатком 3. Вывести заданный и новообразованный векторы.
C++ Массивы. Заменить все отрицательные элементы, стоящие на четных местах, максимальным его элементом, а на нечетных местах - минимальным http://www.cyberforum.ru/cpp-beginners/thread905709.html
В заданном массиве В, который содержит 21 элемент, заменить все отрицательные элементы, стоящие на четных местах, максимальным его элементом, а на нечетных местах - минимальным элементом массива....
C++ Написать игру гонки Прошу написать игру гонки в которые играют на тетырсе! подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
25.06.2013, 10:20
Цитата Сообщение от SanAlex Посмотреть сообщение
Например у меня выполнить действие для столбцов у которых последний элемент имеет чётное значение.
Поскольку само действие не указано, придумаю его: умножить каждый элемент такого столбца на 2. Также чётко не определена сигнатура функции-действия, поэтому буду передавать в неё сам двумерный массив, количество строк в нём и номер столбца, над которым выполняется действие. Тогда имеем такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Тип действия над массивом
typedef void (*action)(int **arr, int rows, int col);
 
// Функция, находящая очередной удовлетворяющий условию
// столбец и выполняющая для найденного столбца заданное
// действие
void process_array(int **arr, int rows, int cols, action a)
{
    // Идём по столбцам
    for (int i = 0; i < cols; ++i)
        // Если последний элемент очередного столбца чётный
        if (arr[rows - 1][i] % 2 == 0)
            // Выполняем для него действие
            (*a)(arr, rows, i);
}
 
// Действие, для заданного столбца умножает все его элементы на 2
void mul_2_action(int **arr, int rows, int col)
{
    // Идём по строкам (по элементам столбца)
    for (int i = 0; i < rows; ++i)
        // Умножаем элемент на 2
        arr[i][col] *= 2;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.