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

Перемножение двух матриц - C++

Восстановить пароль Регистрация
 
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
23.02.2014, 12:10     Перемножение двух матриц #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int Multiplication(int a[5][5], int b[5][5]) {
    cout << "***********Result***********" << endl;
    int c[5][5];
    for(int i = 0; i < 5; i++) // i = ряд матрицы a
    {
        for(int j = 0; j < 5; j++) // j = столбец матрицы b
        {
            int skalaar = 0;
            for(int k = 0; k < 5; k++)
                skalaar += a[i][k] * b[k][j];
            c[i][j] = skalaar;
            cout << c[i][j] << endl;
            return 0;
        }
    }
}
правильный ли алгоритм перемножения двух матриц, выдает просто что то такое:
Миниатюры
Перемножение двух матриц  
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,165
Завершенные тесты: 1
23.02.2014, 12:26     Перемножение двух матриц #2
Алгоритм правильный, только матрицу с надо передать в вызывающую программу.
Иначе, зачем ее тогда вообще делать
C++
1
void Multiplication(int a[5][5], int b[5][5],int c[5][5])
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
23.02.2014, 12:29     Перемножение двух матриц #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот накидал не слишком красивый код.
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
#include <iostream>
#include <iomanip>
using namespace std;
 
void Multiplication(int a[5][5], int b[5][5]) {
    int c[5][5];
    for(int i = 0; i < 5; i++) // i = ряд матрицы a
    {
        for(int j = 0; j < 5; j++) // j = столбец матрицы b
        {
          c [i][j] = a[i][j] * b[i][j];
        }
    }
    cout << "*************************************Result************************************" << endl;
    for(int i = 0; i < 5; i++) // i = ряд матрицы a
    {
        for(int j = 0; j < 5; j++) // j = столбец матрицы b
        {
          cout << setw(15) << c[i][j] << setw(15);
        }
        cout << endl;
    }
}
 
int main()
{
 
   int k[5][5] =
    {
        {5,4,3,2,1},
        {5,4,3,2,1},
        {5,4,3,2,1},
        {5,4,3,2,1},
        {5,4,3,2,1},
    };
    int l[5][5] =
    {
        {3,4,3,10,6},
        {5,4,3,2,1},
        {5,4,3,2,1},
        {5,6,3,6,1},
        {5,4,5,2,1},
    };
    Multiplication(k,l);
    return 0;
}
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
23.02.2014, 12:34  [ТС]     Перемножение двух матриц #4
zss, исправил как Вы сказали, но все равно как вектор выдает...не должна ли матрица получится??
Миниатюры
Перемножение двух матриц  
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,914
23.02.2014, 12:37     Перемножение двух матриц #5
Цитата Сообщение от RayPas Посмотреть сообщение
исправил как Вы сказали, но все равно как вектор выдает...не должна ли матрица получится??
А вы пробелы при выводе ставить не пробывали?
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
23.02.2014, 12:39     Перемножение двух матриц #6
Вот так должно получится.
Миниатюры
Перемножение двух матриц  
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
23.02.2014, 12:43  [ТС]     Перемножение двух матриц #7
Progers , так не выходит почему-то...
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
23.02.2014, 12:44     Перемножение двух матриц #8
RayPas, Вы используйте код, который я вам скинул? И можете приложить скриншот вашего вывода?
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,914
23.02.2014, 12:44     Перемножение двух матриц #9
Цитата Сообщение от RayPas Посмотреть сообщение
Progers , так не выходит почему-то...
У Progers, выводит все правильно.Сравните его код с со своим.
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
23.02.2014, 12:46     Перемножение двух матриц #10
Visual Studio 2013, выводит правильно. Если вы используйте студию, не забудьте добавить
C++
1
system("PAUSE"); // в конец программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2014, 12:51     Перемножение двух матриц
Еще ссылки по теме:

Перемножение матриц C++
Перемножение матриц C++
C++ Перемножение матриц

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

Или воспользуйтесь поиском по форуму:
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
23.02.2014, 12:51  [ТС]     Перемножение двух матриц #11
дада, Исправил как ВЫ сказали, Progers, всё заработало! Спасибо!
Yandex
Объявления
23.02.2014, 12:51     Перемножение двух матриц
Ответ Создать тему
Опции темы

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