Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ бинарными деревьями как динамическая структура данных http://www.cyberforum.ru/cpp-beginners/thread208035.html
Суть задачи в следующем. Необходимо реализовать бинарное дерево как динамическую структуру данных. Помимо стандартных функций созджания 1 элемента и распечатки дерева необходимо написать функцию добавления новогно элемента в дерево. В узле дерева находится строка. Ещё про функцию добавления. Узел дерева должен содержать либо данные либо * , как указатель на то что у дерева сущетвуют ещё 2...
C++ Приведение типов Добрый вечер! Реализовываю явное и не явное приведение типов. Есть два класса, сепаративных, A и B. Реализацию явного преобразования делаю перегрузкой типов A и B. Реализацию неявного преобразования делаю перегрузкой оператора "=". Есть следующий момент: при реализации неявного преобразования this передаётся на A в случае вызова его объектом типа A, и на B, в случае вызова его объектом B.... http://www.cyberforum.ru/cpp-beginners/thread208034.html
Для матриццы размером n x m вычислить сумму элементов матрицы C++
Условия этой задачи (задача одна), таковы: Для матриццы размером n x m вычислить сумму элементов матрицы. Умножить на это число элементы k-той строки. Значение k вводится. Исходная матрица задается в виде двумерного массива случайным образом. Вывести на экран исходную и результирующую матрицу. Для первой части этой одной задачи вроде это, хотя я неуверен что правильно, если кто лучше...
C++ интеграл
помогите пожалуйста написать прогу которая релала бы интеграллы например: \int dv/v=\int dx/xоткуда при решении получаем Ln(v)=Ln(x)
C++ Строки (C++) http://www.cyberforum.ru/cpp-beginners/thread208002.html
вот моё задание: Зменить в строке последовательность одинаковых символов (не пробелов) на десятичное число, соответствующее их количеству, и сам символ. код: #include <math.h> #include <stdio.h> #include <iostream> #include <string> using namespace std;
C++ Дружественные методы в заголовочном и релизационном файле Доброго времени суток. Есть такая проблема: В заголовочном файле lsf.h описываю класс и перегружаю "<<" ">>" для работы с классом. #if !defined(TEST) #define TEST #include<iostream> #include<cstring> #include<cstdlib> using namespace std; const int size=1000; подробнее

Показать сообщение отдельно
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.12.2010, 19:46     Передача двумерного массива в функцию.
Вот, програма находит произведение матриц, там жэ и пример передачи двумерного динамического масива, как параметр в функцию
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <iomanip>
 
void matrixmult( int **m1, int m1_row, int m1_col, int **m2, int m2_row, int m2_col, int **m3, int m3_row, int m3_col);
 
void matrixfill( int **m, int row, int col)
{
                for (int i = 0; i < row; ++i)
                        for (int j = 0; j < col; ++j)
                        {
                                std::cout << "Enter [ " << i << " ][ " << j <<" ] element: ";
                                std::cin >> m[i][j];
                        }
}
 
void print_matr(int **m, int row, int col)
{
    for (int i = 0; i < row; ++i)
    {
        for (int j = 0; j < col; ++j)
            std::cout << std::setw(3) << m[i][j] << ' ';
 
        std::cout << std::endl;
    }
}
 
int main()
{
        int row1 = 0;
        int col1 = 0;
 
        std::cout << "Enter number of rows of the first matrix: ";
        std::cin >> row1;
 
        std::cout << "Enter number of columns of the first matrix: ";
        std::cin >> col1;
 
        int **arr1 = new int*[row1];
        for (int i = 0; i < row1; ++i)
                arr1[i] = new int[col1];
 
        matrixfill(arr1,row1,col1);
 
        int row2 = 0;
        int col2 = 0;
 
        std::cout << "Enter number of rows of the second matrix: ";
        std::cin >> row2;
 
        std::cout << "Enter number of columns of the second matrix: ";
        std::cin >> col2;
 
        int **arr2 = new int*[row2];
        for (int i = 0; i < row2; ++i)
                arr2[i] = new int[col2];
 
        matrixfill(arr2,row2,col2);
 
        int row3 = row1;
        int col3 = col2;
 
        int **arr3 = new int*[row3];
        for (int i = 0; i < row3; ++i)
                arr3[i] = new int[col3];
 
        for (int i = 0; i < row3; ++i)
                        for (int j = 0; j < col3; ++j)
                                arr3[i][j] = 0;
 
        std::cout << "\nFirst matrix: \n";
        print_matr(arr1, row1, col1);
 
        std::cout << "\nSecond matrix: \n";
        print_matr(arr2, row2, col2);
        //если число столбцов первой матрицы равно числу строк второй матрицы
        if(col1 == row2)
            matrixmult(arr1,row1,col1, arr2,row2,col2, arr3,row3,col3);
 
        else
        {
            std::cerr << " Error! " << std::endl;
            return 1;
        }
 
        std::cout << "\nResult matrix:" << std::endl;
        print_matr(arr3, row3, col3);
 
        for(int i = 0; i < row1; i++)
          delete[] arr1[i];
        delete[] arr1;
        for(int i = 0; i < row2; i++)
           delete[] arr2[i];
        delete[] arr2;
        for(int i = 0;i < row3 ; i++)
            delete[] arr3[i];
        delete[] arr3;
 
        return 0;
}
 
 
 
void matrixmult( int **m1, int m1_row, int m1_col, int **m2, int m2_row, int m2_col, int **m3, int m3_row, int m3_col)
{
        for (int k = 0; k < m2_col; ++k)
                for (int i = 0; i < m1_row; ++i)
                        for (int j = 0; j < m1_col; ++j)
                                m3[i][k] += m1[i][j] * m2[j][k];
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru