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

Умножение квадратных матриц

28.11.2016, 01:22. Показов 2194. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача состоит в том, чтобы умножать квадратные матрицы двумя способами, А - записывая в матрицу С. Б - перезаписывая в матрицу А. Программа компилируется, но при запуске выдает ошибку и Main возращает 3221226356. Запарилась уже искать причину. Гляньте опытным взглядом, что не так?
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#include <string.h>
 
using namespace std;
 
void MatrixFocusA(int Size, int** A, int** B, int** C) {
    for (int i = 0; i < Size; i++) 
        for (int j = 0; j < Size; j++) {
            int sum = 0; 
            for (int k = 0; k < Size; k++)         
            sum += A[i][k] * B[k][j];       
            C[i][j] = sum;
        }
}
 
void MatrixFocusB(int Size, int** A, int** B) {
    int **M = new int* [Size];
        for (int i = 0; i < Size; i++)
        M[i] = new int [Size];
    
    for (int i = 0; i < Size; i++) 
        for (int j = 0; j < Size; j++) {
            int sum = 0; 
            for (int k = 0; k < Size; k++)         
            sum += A[i][k] * B[k][j];       
            M[i][j] = sum;
        }
    
    for (int i = 0; i < Size; i++) 
        for (int j = 0; j < Size; j++)
            A[i][j] = M [i][j];
    
    for (int i = 0; i < Size; i++)
                delete [] M[Size];
               delete [] M; 
}
 
void WriteMatrix(int **M, int Size) {
    for(int i = 0; i < Size; i++) {
        for(int j = 0; j < Size; j++)
        cout<<M[i][j]<<' ';
        cout<<"\n";
    }
}
 
int main() {
    int Size;
    cout<<"Enter the length of the side of the matrix: ";
    cin>>Size;
 
    int **A = new int *[Size];
    for (int i = 0; i < Size; i++)
        A[i] = new int [Size];
 
    int **B = new int* [Size];
    for (int i = 0; i < Size; i++)
        B[i] = new int [Size];
 
    int **C = new int* [Size];
    for (int i = 0; i < Size; i++)
        C[i] = new int [Size];
 
    for (int i = 0; i < Size; i++) 
        for (int j = 0; j < Size; j++){
            A[i][j] = rand()%10;
            B[i][j] = rand()%10;         
        }
 
    MatrixFocusA(Size, A, B, C);
    MatrixFocusB(Size, A, B);
 
    cout<<"\n\nMatrix A:\n";
    WriteMatrix(A, Size);
    cout<<"\n\nMatrix B:\n";
    WriteMatrix(B, Size);
    cout<<"\n\nMatrix C:\n";
    WriteMatrix(C, Size);
    cout<<"\n\nMatrix A:\n";
    WriteMatrix(A, Size);
 
    for (int i = 0; i < Size; i++)
        delete [] A[Size];
            delete [] A;
    for (int i = 0; i < Size; i++)
        delete [] B[Size];
            delete [] B;
    for (int i = 0; i < Size; i++)
        delete [] C[Size];
            delete [] C;
 
    getch();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2016, 01:22
Ответы с готовыми решениями:

Умножение квадратных матриц
Функция умножения: void Multiplication (int a, int b,int c){ for(int i=0,n=0; i&lt;=N-1&amp;&amp;...

Умножение квадратных матриц через указатель
Есть программа, для умножения квадратных матриц, которая работает исправно без использования...

Умножение треугольных матриц«Методы обработки разреженных матриц»
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ...

функции для квадратных матриц
Вообщем нужна помощь по написаниям функции для квадратных матриц, 2 тривиальные (для кого-то)...

3
15 / 15 / 15
Регистрация: 20.08.2016
Сообщений: 51
28.11.2016, 10:42 2
Скинь текст ошибки, у меня просто твой код работает
0
3 / 3 / 0
Регистрация: 23.06.2016
Сообщений: 8
28.11.2016, 22:36  [ТС] 3
Вот скринштоны. Может проблема в Dev cpp? Вы на какой IDE компилировали?
Миниатюры
Умножение квадратных матриц   Умножение квадратных матриц  
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
28.11.2016, 22:57 4
Лучший ответ Сообщение было отмечено Narcisa как решение

Решение

37 строка
Цитата Сообщение от Narcisa Посмотреть сообщение
delete [] M[Size];
C++
1
delete[] M[i];
Аналогично в конце программы для A,B,C
1
28.11.2016, 22:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2016, 22:57
Помогаю со студенческими работами здесь

Вычислить произведение квадратных матриц
Программа. Даны 3 квадратные целые матрицы A, B и C четвертого порядка. Вычислить: A * B * C. ...

Функция генерации квадратных матриц
Составить процедуру генерации (заполнение случайными числами в введенном диапазоне) квадратных...

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

Оптимизации алгоритма умножения квадратных матриц
Какой алгоритм используется в мат. пакете Матлаб для умножения квадратных матриц? Даже не сам...


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

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

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