0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 52
1

Произведение матриц

23.09.2016, 22:56. Показов 552. Ответов 6
Метки нет (Все метки)

Всем привет. Пожалуйста подскажите, в чем ошибка?
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
#include <iostream>
using namespace std;
int main(){
    setlocale(LC_ALL, "Russian");
    int n, m;
    cout << "Введите размер матрицы:\n";
    cout << "Количество столбцов: ";
    cin >> n;
    cout << "Количество строк: ";
    cin >> m;
    const int stolb=n;
    const int stroka=m;
    int A[stolb][stroka];
    cout << "Введите элементы матрицы: \n";
    for(int i=0; i<stolb; i++)
    for(int j=0; j<stroka; j++)
    cin >> A[i][j];
    system("cls");
    cout << "Вторая матрица.\n";
    cout << "Количество столбцов: ";
    cin >> n;
    cout << "Количество строк: ";
    cin >> m;
    const int stolb1=n;
    const int stroka1=m;
    int B[stolb1][stroka1];
    cout << "Введите элементы второй матрицы:\n";
    for(int i=0; i<stolb1; i++)
    for(int j=0; j<stroka1; j++)
    cin >> B[i][j];
    
    int C[stolb][stroka1];
    if(stroka != stolb1){
        system("cls");
        cout << "Error.\n";
    }
    else{
        for (int k = 0; k < stolb1; ++k)
                for (int i = 0; i < stroka; ++i)
                        for (int j = 0; j < stolb; ++j)
                                C[i][k] += A[i][j] * B[j][k];
    }
    for(int i=0; i<stolb; i++){
    cout << "\n";
    for(int j=0; j<stroka1; j++)
    cout << C[i][j] << " ";
    }
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2016, 22:56
Ответы с готовыми решениями:

Транспонирование матриц. Произведение транспонированных матриц
Найти матрицу С: C=ATBTB; A=\begin{bmatrix}1\\ 1\\ 1\end{bmatrix} B=\begin{bmatrix}1 &amp;...

Произведение матриц
Вобщем вот задача:&quot;Напишите перегружаемую функцию product, которая возвращает произведение...

Произведение матриц
Здравствуйте. Помогите, пожалуйста, решить задачу. Программу написал, но она выдает ошибку....

Произведение матриц
Даны две матрицы. Получите их произведение.

6
Диссидент
Эксперт C
26947 / 16828 / 3697
Регистрация: 24.12.2010
Сообщений: 37,759
23.09.2016, 23:10 2
Цитата Сообщение от 9senser9 Посмотреть сообщение
в чем ошибка?
Как проявляется?
0
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 52
23.09.2016, 23:15  [ТС] 3
Не правильно считает
0
Диссидент
Эксперт C
26947 / 16828 / 3697
Регистрация: 24.12.2010
Сообщений: 37,759
23.09.2016, 23:20 4
C++
1
2
3
4
5
6
for (int k = 0; k < stolb1; ++k)
                for (int i = 0; i < stroka; ++i) {
                        C[i][k] = 0;   // Инициализировать надо
                        for (int j = 0; j < stolb; ++j)
                                C[i][k] += A[i][j] * B[j][k];
                }
0
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 52
23.09.2016, 23:27  [ТС] 5
Спасибо большое. Буду очень признателен, если объясните для чего вы это сделали, ведь я раньше инициализировал массив C.
0
Диссидент
Эксперт C
26947 / 16828 / 3697
Регистрация: 24.12.2010
Сообщений: 37,759
23.09.2016, 23:37 6
Цитата Сообщение от 9senser9 Посмотреть сообщение
я раньше инициализировал массив C.
Не заметил. В какой строчке? В строке 32 вы его объявили. Но там пока лежит мусор.
0
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 52
23.09.2016, 23:49  [ТС] 7
Понял. А почему не получается посчитать произведение матриц, в которые есть отрицательные числа. Точнее получается, но в результате программа показывает не правильный результат, с положительными числами, вроде, все работает.

Добавлено через 7 минут
Хотя, в некоторых случаях работает. Квадратные матрицы почти все удается посчитать, а вот разные размеры нет (к примеру, 1-я матрица - 4х4, вторая - 4х1).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2016, 23:49
Помогаю со студенческими работами здесь

Произведение матриц O(n^2)
Кто нибудь может скинуть код произведения матриц со сложностью O(n^2)? Никак не получается решить...

Найти произведение матриц
1)Даны матрицы А и В размера k×m и m×l соответственно. Найти произведение АВ. Перемножение матриц...

Найти произведение матриц
Даны две матрицы. Найти произведение матриц. Размерности массивов, где хранятся матрицы, должны...

Произведение двумерных матриц
При умножении матрицы на матрицу нулевая строка первой матрицы использует странные числа. При...

Найти произведение матриц
17. Найти произведение матриц A(5,7) и D(5.7)

Найти произведение матриц
Дано: прямоугольные матрицы A и B. Найти произведение AB. Вычисление элемента матрицы AB оформить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru