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

Операции над матрицами-сложение, вычитание, умножение на число - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
01.06.2014, 12:12     Операции над матрицами-сложение, вычитание, умножение на число #1
Здравствуйте,помогите пожалуйста по такой проблемке-в С++ надо создать матрицу и действия над ней..буду очень благодарен кто поможет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 12:12     Операции над матрицами-сложение, вычитание, умножение на число
Посмотрите здесь:

С клавиатуры вводится две матрицы вычислить: сложение, вычитание, умножение, транспонирование. C++
C++ Сложение, вычитание, умножение
операции над матрицами C++
Организовать ввод двух вещественных чисел и операции над ними: сложение, вычитание, умножение и деление C++
C++ Нужны советы как реализовать сложение, вычитание, умножение полиномов/многочленов и деление на число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
05.06.2014, 11:58  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #21
Необработанное исключение в "0x7556b727" в "matrix.exe": Исключение Microsoft C++: std::out_of_range по адресу 0x0049f924..

Добавлено через 1 минуту
да я тоже додумался но вылазит в консоли после ввода 3 цифры вот ошибка

Добавлено через 11 минут
Debug Error!

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
(Press Retry to debag the application)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
06.06.2014, 22:28  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #22
ребят ну помогите подправить пожалуйста.
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
07.06.2014, 03:17     Операции над матрицами-сложение, вычитание, умножение на число #23
АЛЕКСЕЙ_92, Вот попробовал написать программу. Да раскритикуют меня профессионалы
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int i,j,k,l;
 
void sum_matrix(int *a[], int *b[], int n, int m, int p, int r){
 
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++){
            for(k = 0;k < p;k++){
                for(l = 0;l < r;l++){
                    a[i][j] + b[k][l];
                }
            }
        }
    }
}
void sub_matrix(int *a[], int *b[], int n, int m, int p, int r){
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++){
            for(k = 0;k < p;k++){
                for(l = 0;l < r;l++){
                    a[i][j] - b[k][l];
                }
            }
        }
    }
}
void mult_matrix(int *a[], int n, int m, int q){
 
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            q * a[i][j];
    }
}
int main()
{
    int n,m,p,r,q;
    cin >> n;
    cin >> m;
    cin >> p;
    cin >> r;
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            cin >> a[i][j];
    }
        int **b = new int *[p];
        for(k = 0;k < p;k++)
            b[k] = new int[r];
        for(k = 0;k < n;k++){
            for(l = 0;l < r;l++)
                cin >> b[k][l];
        }
            sum_matrix(a, b, n, m, p, r);
            sub_matrix(a, b, n, m, p, r);
            mult_matrix(a, n, m, q);
 
            delete[]a;
            delete[]b;
 
            getch();
 
            return 0;
}
Только я не сделал вывод результатов на консоль. Я так понял, что нужно в каждой функции создать динамический массив и в него записывать получившиеся матрицы. Но не могу понять, как его правильно создать.
И да, в мою сторону сейчас пойдет критика по поводу глобальных переменных

Добавлено через 2 минуты
АЛЕКСЕЙ_92, Надеюсь, это то, что вам нужно.
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
07.06.2014, 18:49  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #24
жаль но я тоже никак не знаю как сделать вывод результатов...
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
09.06.2014, 08:14  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #25
здесь есть вообще кто живой?-не ужели никто не поможет разобраться в ошибках....
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
10.06.2014, 13:23  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #26
ребят,ну помогите пожалуйста,ну никак не получается эта матрица,никак не пойму что где как...
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
10.06.2014, 14:27     Операции над матрицами-сложение, вычитание, умножение на число #27
В общем, вопрос к профессионалам. Вот я написал вроде то, что нужно ТС, но выводит "Необработанное исключение" после ввода матриц а и b и нажатия Enter. Скажите, где я оплошался?
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int i,j,k,l;
int n,m,q;
int s,t,x,y,w,z;
 
void sum_matrix(int *a[], int *b[], int *c[], int n, int m, int s, int t){
 
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++){
            for(k = 0;k < n;k++){
                for(l = 0;l < m;l++){
                    c[s][t] = a[i][j] + b[k][l];
                }
            }
        }
    }
}
void sub_matrix(int *a[], int *b[], int *d[], int n, int m, int x, int y){
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++){
            for(k = 0;k < n;k++){
                for(l = 0;l < m;l++){
                    d[x][y] = a[i][j] - b[k][l];
                }
            }
        }
    }
}
void mult_matrix(int *a[], int *e[], int n, int m, int q, int w, int z){
 
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            e[w][z] = q * a[i][j];
    }
}
int main()
{
    cin >> n >> m;
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            cin >> a[i][j];
    }
        int **b = new int *[n];
        for(k = 0;k < n;k++)
            b[k] = new int[m];
        for(k = 0;k < n;k++){
            for(l = 0;l < m;l++)
                cin >> b[k][l];
        }
        int **c = new int *[n];
        for(s = 0;s < n;s++)
            int *c = new int[m];
 
        int **d = new int *[n];
        for(x = 0;x < n;x++)
            int *d = new int[m];
 
        int **e = new int *[n];
        for(w = 0;w < n;w++)
            int *e = new int[m];
 
            sum_matrix(a, b, c, n, m, s, t);
            sub_matrix(a, b, d, n, m, x, y);
            mult_matrix(a, e, n, m, q, w, z);
 
            for(s = 0;s < n;s++){
                for(t = 0;t < m;t++)
                    cout << c[s][t] << " ";
                cout << "\n";
            }
            for(x = 0;x < n;x++){
                for(y = 0;y < m;y++)
                    cout << d[x][y] << " ";
                cout << "\n";
            }
            for(w = 0;w < n;w++){
                for(z = 0;z < m;z++)
                    cout << e[w][z] << " ";
                cout << "\n";
            }
 
            delete[]a;
            delete[]b;
            delete[]c;
            delete[]d;
            delete[]e;
 
            getch();
 
            return 0;
}
Добавлено через 8 минут
И да, я знаю, что будут замечания по поводу глобальных переменных. Я изначально объявлял их в функции main, но при компиляции мне выводит, что все переменные не инициализированы.
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
10.06.2014, 16:48     Операции над матрицами-сложение, вычитание, умножение на число #28
Очень наверчено... Вот:

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
#include <iostream.h>
 
void sum_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
 
    cin >> n >> m;
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            cin >> a[i][j];
    }
        int **b = new int *[n];
        for(i = 0;i < n;i++)
            b[i] = new int[m];
        for(i = 0;i < n;i++){
            for(j = 0;j < m;j++)
                cin >> b[i][j];
        }
        int **c = new int *[n];
        for(i = 0;i < n;i++)
            int *c = new int[m];
 
        int **d = new int *[n];
        for(i = 0;i < n;i++)
            int *d = new int[m];
 
        int **e = new int *[n];
        for(i = 0;i < n;i++)
            int *e = new int[m];
 
            sum_matrix(a, b, c, n, m);
            sub_matrix(a, b, d, n, m);
            mult_matrix(a, e,q, n, m);
 
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << c[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << d[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << e[i][j] << " ";
                cout << "\n";
            }
 
            delete[]a;
            delete[]b;
            delete[]c;
            delete[]d;
            delete[]e;
 
            return 0;
}
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
10.06.2014, 17:10     Операции над матрицами-сложение, вычитание, умножение на число #29
Catstail, Вы забыли в функции вычитания поменять массив с на d Ну радует хоть то, что я почти верно прогу написал и кому то помог. Это моя первая помощь на форуме
АЛЕКСЕЙ_92, Вот окончательная программа.
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
#include <iostream.h>
using namespace std;
 
void sum_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            d[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
 
    cin >> n >> m;
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            cin >> a[i][j];
    }
        int **b = new int *[n];
        for(i = 0;i < n;i++)
            b[i] = new int[m];
        for(i = 0;i < n;i++){
            for(j = 0;j < m;j++)
                cin >> b[i][j];
        }
        int **c = new int *[n];
        for(i = 0;i < n;i++)
            int *c = new int[m];
 
        int **d = new int *[n];
        for(i = 0;i < n;i++)
            int *d = new int[m];
 
        int **e = new int *[n];
        for(i = 0;i < n;i++)
            int *e = new int[m];
 
            sum_matrix(a, b, c, n, m);
            sub_matrix(a, b, d, n, m);
            mult_matrix(a, e,q, n, m);
 
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << c[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << d[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << e[i][j] << " ";
                cout << "\n";
            }
 
            delete[]a;
            delete[]b;
            delete[]c;
            delete[]d;
            delete[]e;
 
            return 0;
}
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
10.06.2014, 17:10  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #30
1>matrix.cpp
1>c:\users\user\desktop\matrix\matrix.cpp(1) : warning C4627: #include <iostream.h>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\user\desktop\matrix\matrix.cpp(88) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1>Журнал построения был сохранен в "file://c:\Users\user\Desktop\matrix\Debug\BuildLog.htm"
1>matrix - ошибок 1, предупреждений 1
========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========
вот что выходит а stdafx.h добавляешь вообще больше 11 ошибок с необъявленным индетификатором...может я что не так делаю
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
10.06.2014, 17:15     Операции над матрицами-сложение, вычитание, умножение на число #31
У меня в VC++ 6.0 все транслируется без ошибок

Добавлено через 54 секунды
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
- а ее никогда в форум не выкладываю. Разные среды бывают. Для VC она нужна
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
10.06.2014, 17:17  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #32
значит мне лучше скачать VS 2006?? чем искать кто поможет в VS 2008??
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
10.06.2014, 17:26     Операции над матрицами-сложение, вычитание, умножение на число #33
Вот окончательный вариант. Немного облагородил и исправил еще три ошибки:

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
#include "stdafx.h"
#include <iostream.h>
 
void sum_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
 
    cout << "n=";
    cin >> n;
    
    cout << "m=";
    cin >> m;
 
    cout << "q=";
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "a[" << i <<"," << j << "]=";
            cin >> a[i][j];
        }
    
    int **b = new int *[n];
    for(i = 0;i < n;i++)
       b[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "b[" << i <<"," << j << "]=";
            cin >> b[i][j];
        }
        
    int **c = new int *[n];
    for(i = 0;i < n;i++)
       c[i] = new int[m];
 
    int **d = new int *[n];
    for(i = 0;i < n;i++)
       d[i] = new int[m];
 
    int **e = new int *[n];
    for(i = 0;i < n;i++)
       e[i] = new int[m];
 
    sum_matrix (a, b, c, n, m);
    sub_matrix (a, b, d, n, m);
    mult_matrix(a, e, q, n, m);
 
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << c[i][j] << " ";
       cout << "\n";
    }
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << d[i][j] << " ";
       cout << "\n";
    }
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << e[i][j] << " ";
       cout << "\n";
    }
 
    delete[]a;
    delete[]b;
    delete[]c;
    delete[]d;
    delete[]e;
 
    return 0;
}
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
10.06.2014, 17:52     Операции над матрицами-сложение, вычитание, умножение на число #34
Catstail, Да почему
C++
1
c[i][j]=a[i][j]-b[i][j];
если
C++
1
d[i][j]=a[i][j]-b[i][j];
?

Добавлено через 11 минут
АЛЕКСЕЙ_92, Вот
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
#include <iostream>
using namespace std;
 
void sum_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *d[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            d[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
 
    cin >> n >> m;
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            cin >> a[i][j];
    }
        int **b = new int *[n];
        for(i = 0;i < n;i++)
            b[i] = new int[m];
        for(i = 0;i < n;i++){
            for(j = 0;j < m;j++)
                cin >> b[i][j];
        }
        int **c = new int *[n];
        for(i = 0;i < n;i++)
            int *c = new int[m];
 
        int **d = new int *[n];
        for(i = 0;i < n;i++)
            int *d = new int[m];
 
        int **e = new int *[n];
        for(i = 0;i < n;i++)
            int *e = new int[m];
 
            sum_matrix(a, b, c, n, m);
            sub_matrix(a, b, d, n, m);
            mult_matrix(a, e,q, n, m);
 
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << c[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << d[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << e[i][j] << " ";
                cout << "\n";
            }
 
            delete[]a;
            delete[]b;
            delete[]c;
            delete[]d;
            delete[]e;
 
            return 0;
}
И вам нужно зайти в Свойства проекта --> С/С++ --> Предварительно откомпилированные заголовки --> Не использовать предварительно откомпилированные заголовки.

Добавлено через 4 минуты
Catstail, Но все же. Я запускаю эту программу у себя(MVC 2010)
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
#include <iostream>
using namespace std;
 
void sum_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *d[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            d[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
 
    cin >> n >> m;
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
    for(i = 0;i < n;i++){
        for(j = 0;j < m;j++)
            cin >> a[i][j];
    }
        int **b = new int *[n];
        for(i = 0;i < n;i++)
            b[i] = new int[m];
        for(i = 0;i < n;i++){
            for(j = 0;j < m;j++)
                cin >> b[i][j];
        }
        int **c = new int *[n];
        for(i = 0;i < n;i++)
            int *c = new int[m];
 
        int **d = new int *[n];
        for(i = 0;i < n;i++)
            int *d = new int[m];
 
        int **e = new int *[n];
        for(i = 0;i < n;i++)
            int *e = new int[m];
 
            sum_matrix(a, b, c, n, m);
            sub_matrix(a, b, d, n, m);
            mult_matrix(a, e,q, n, m);
 
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << c[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << d[i][j] << " ";
                cout << "\n";
            }
            for(i = 0;i < n;i++){
                for(j = 0;j < m;j++)
                    cout << e[i][j] << " ";
                cout << "\n";
            }
 
            delete[]a;
            delete[]b;
            delete[]c;
            delete[]d;
            delete[]e;
 
            return 0;
}
И мне выдает "Необработанное исключение". В чем причина?
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
10.06.2014, 18:09  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #35
Sh@dow777 так мне на чем твою программу запускать??и на какой версии?
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
10.06.2014, 18:13     Операции над матрицами-сложение, вычитание, умножение на число #36
АЛЕКСЕЙ_92, На Visual Studio. Где еще?
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
10.06.2014, 18:18  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #37
вот что выходит после набора 9 чисел и нажатия Enter
Необработанное исключение в "0x0124155c" в "matrix.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
10.06.2014, 18:21     Операции над матрицами-сложение, вычитание, умножение на число #38
АЛЕКСЕЙ_92, Вот у меня тоже самое. Я спросил у Catstail, но он молчит. У него программа работает.
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
10.06.2014, 18:30  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #39
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
#include <iostream>
using namespace std;
void sum_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *c[], int n, int m)
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
 
    cout << "n=";
    cin >> n;
    
    cout << "m=";
    cin >> m;
 
    cout << "q=";
    cin >> q;
 
    int **a = new int *[n];
    for(i = 0; i < n;i++)
        a[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "a[" << i <<"," << j << "]=";
            cin >> a[i][j];
        }
    
    int **b = new int *[n];
    for(i = 0;i < n;i++)
       b[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "b[" << i <<"," << j << "]=";
            cin >> b[i][j];
        }
        
    int **c = new int *[n];
    for(i = 0;i < n;i++)
       c[i] = new int[m];
 
    int **d = new int *[n];
    for(i = 0;i < n;i++)
       d[i] = new int[m];
 
    int **e = new int *[n];
    for(i = 0;i < n;i++)
       e[i] = new int[m];
 
    sum_matrix (a, b, c, n, m);
    sub_matrix (a, b, d, n, m);
    mult_matrix(a, e, q, n, m);
 
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << c[i][j] << " ";
       cout << "\n";
    }
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << d[i][j] << " ";
       cout << "\n";
    }
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << e[i][j] << " ";
       cout << "\n";
    }
 
    delete[]a;
    delete[]b;
    delete[]c;
    delete[]d;
    delete[]e;
 
    return 0;
}
Добавлено через 1 минуту
вот наконец то получилось с вашей помощью-огромное спасибо за помощь!!!))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 08:49     Операции над матрицами-сложение, вычитание, умножение на число
Еще ссылки по теме:

сложение и вычитание, умножение и деление, сравнение сумм C++
C++ Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание)

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

Или воспользуйтесь поиском по форуму:
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
11.06.2014, 08:49     Операции над матрицами-сложение, вычитание, умножение на число #40
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
вот наконец то получилось с вашей помощью-огромное спасибо за помощь!!!))
- очень похоже на мой код... Нет?

Добавлено через 3 минуты
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Да почему
- какя разница, как называть формальные параметры функций?
Yandex
Объявления
11.06.2014, 08:49     Операции над матрицами-сложение, вычитание, умножение на число
Ответ Создать тему
Опции темы

Текущее время: 19:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru