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

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

Войти
Регистрация
Восстановить пароль
 
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
#1

Передача столбца массива в функцию - C++

19.11.2014, 18:00. Просмотров 545. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Подскажите, можно ли передать столбец в функцию, чтобы в ней работать со столбцом матрицы, как с одномерным массивом?
Например, для нахождения максимальных значений в столбцах (ниже находит в строчках).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
double fmax(const double *a, const int m)
{
    double max = *a;
    for (int i=0; i<m; i++)
        if (a[i] > max)
            max = a[i];
    return max;
}
int main()
{
    const int n = 3, m = 4;
    double a[n][m], b[m], max;
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            scanf("%lf", &a[i][j]);
    
    for (int j=0; j<n; j++)
    {
        b[j] = fmax(a[j], m);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача столбца массива в функцию (C++):

Передача массива в функцию используя указатель на функцию - C++
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать функцию ввода масива в функцию его обработки...

Передача двухмерного массива из функцию в функцию - C++
Допустим у меня есть функция, в которой &quot;генерируется&quot; массив. Но нужно его передать в другую функцию, которая его выведет на экран. ...

Передача массива структур в функцию не указывая размера массива - C++
Я читаю с командной строки файл в котором содержится массив структур. Есть библиотека с функцией в которую я прередаю файл и массив...

Передача массива в функцию. - C++
Здравствуйте. Очень нужна помощь, мне необходимо передать массив в функцию (func). #include &lt;iostream&gt; using namespace std; ...

Передача массива в функцию С++ - C++
Например у меня есть функция для создания массива. И есть функция, которая дальше работает с уже созданным массивом. Как мне этот созданный...

Передача массива в функцию - C++
Не знаю в чем проблема, почему-то в функции act()(это моя функция), итерации выполняются по два раза. Суть задания создать обратную...

3
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
19.11.2014, 18:08 #2
чтоб получалась передача именно столбца, наверное, стоит при вводе строки с столбцами поменять местами
C++
1
2
3
for (int j=0; j<m; j++)
          for (int i=0; i<n; i++)
            scanf("%lf", &a[i][j]);
так как элементы в строке хранятся последовательно в памяти, а вот в столбцах - нет. поэтому для работы со строкой через указатель можно пользоваться индексами.
1
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
19.11.2014, 18:11  [ТС] #3
Решила проблему
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double fmax(const double *a, const int m, const int n)
{
    double max = *a;
    for (int i=0; i<n; i++)
        if (*(a+i*m) > max)
            max = *(a+i*m);
    return max;
}
int main()
{
    const int n = 3, m = 4;
    double a[n][m], b[m], max;
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            scanf("%lf", &a[i][j]);
    
    for (int j=0; j<m; j++)
    {
        b[j] = fmax(&a[0][j], m, n);
    }
0
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
19.11.2014, 18:19 #4
либо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    const int N = 3;
    const int M = 4;
    int mas[N][M] = {{1, 2, 3, 9},
                    {4, 5, 6, 8},
                    {7, 8, 9, 7}};
    int tmp[N];
 
    for(int j = 0; j < M; ++j)
    {
        for(int i = 0; i < N; ++i)
            tmp[i] = mas[i][j];
        std::cout << fmax(tmp[i], N);
    }
 
    std::cout << std::endl;
Добавлено через 42 секунды
TyLinka, ну да)
1
19.11.2014, 18:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 18:19
Привет! Вот еще темы с ответами:

Передача массива в функцию - C++
есть массив в методе какого то класса void _mServer::Listen() { .... ULONG s_c; s_c = (ULONG) this; s_c = (ULONG)...

Передача массива в функцию - C++
... int UnichtojenieFiguryMas( int *EnemyLocationXvalue, int z/* размер обоих массивов */, int *EnemyLocationYvalue, int Ocherednost ); ...

Передача массива в функцию - C++
Почему мусор выводит? bool insert(int* mas, int n, int v) { int _n = n + 1; int* mas2 = new int; for (int i = 0; i &lt; n; ++i) ...

Передача массива в функцию - C++
Ребят, подскажите как передать массив в функцию по значению (или альтернативный вариант)? Чтобы изменялась его копия находящаяся в стеке....


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

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

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