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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
#1

порядок перемножения матриц - C++

10.05.2011, 15:22. Просмотров 406. Ответов 0
Метки нет (Все метки)

написал прогу, тока не пойму что не так, правильный ответ находится на второй строке, помогите пожалуйсто
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
#include <iostream>
using namespace std;
#define Min(x,y)((x<y)?x:y)
void proizv(int *p,int dl) 
{
    int i,j,l,k,x,y;
    int **mas=new int*[dl];
    for(i=0;i<dl;i++)
        mas[i]=new int[dl];
    for(i=0;i<dl;i++)
        for(j=0;j<dl;j++)
            mas[i][j]=0;
    for(l=1;l<dl;l++)
    {
        for(i=0;i<dl-l;i++)
        {
            j=i+l;
            mas[i][j]=32767;
            for(k=i;k<j;k++)
            {
                x=mas[i][j];
                y=mas[i][k]+mas[k+1][j]+p[i-1]*p[k]*p[j];
                mas[i][j]=Min(x,y);
            }
        }
    }
    cout<<mas[0][dl-1]<<endl;
    for(i=0;i<dl;i++)
    {
        for(j=0;j<dl;j++)
            cout<<"\t"<<mas[i][j];
        cout<<endl;
    }
}
void main()
{
    int matr[]={1,10,2,5,3};
    proizv(matr,5);
}
Добавлено через 44 минуты
Цитата Сообщение от Zheka91 Посмотреть сообщение
написал прогу, тока не пойму что не так, правильный ответ находится на второй строке, помогите пожалуйсто
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
#include <iostream>
using namespace std;
#define Min(x,y)((x<y)?x:y)
void proizv(int *p,int dl) 
{
    int i,j,l,k,x,y;
    int **mas=new int*[dl];
    for(i=0;i<dl;i++)
        mas[i]=new int[dl];
    for(i=0;i<dl;i++)
        for(j=0;j<dl;j++)
            mas[i][j]=0;
    for(l=1;l<dl;l++)
    {
        for(i=0;i<dl-l;i++)
        {
            j=i+l;
            mas[i][j]=32767;
            for(k=i;k<j;k++)
            {
                x=mas[i][j];
                y=mas[i][k]+mas[k+1][j]+p[i-1]*p[k]*p[j];
                mas[i][j]=Min(x,y);
            }
        }
    }
    cout<<mas[0][dl-1]<<endl;
    for(i=0;i<dl;i++)
    {
        for(j=0;j<dl;j++)
            cout<<"\t"<<mas[i][j];
        cout<<endl;
    }
}
void main()
{
    int matr[]={1,10,2,5,3};
    proizv(matr,5);
}
C++
1
cout<<mas[0][dl-2]<<endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2011, 15:22     порядок перемножения матриц
Посмотрите здесь:

Функция перемножения матриц. - C++
Функция mult, прошу помощи, ибо не пойму в чем ошибка. #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #include &lt;cstdlib&gt; ...

Программа перемножения 2 матриц - C++
ДОброго времени суток прошу помочь написать программу перемножения 2 матриц,матрицы вводятся с клавиатуры.

Оператор перемножения матриц - C++
не работает оператор* двух матриц, никак не могу понять как сделать так, чтобы в операторе была уже одна матрица, а вторую мы бы...

Написать процедуру перемножения матриц. - C++
ребят нужна помощь Задачи по программированию. Задача решается на двух языках. Задача 8. Написать процедуру перемножения...

Ошибка в коде перемножения матриц - C++
Ребята , здравствуйте, нужна nомощь, наnисал код nеремножений 2-х матрицы. Но nри выводе матриц nишет какие то большие цыфры. Я не могу...

Не могу написать программу перемножения матриц - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int i,j; void vvod(int X) { for(i=0;i&lt;=4;i++) for(j=0;j&lt;=4;j++) ...

Оптимизация алгоритма перемножения двух матриц - C++
Здравствуйте, нужна помощь. Есть 2 матрицы, нужно их перемножить так, что бы алгоритм выполнялся со скорость O(n) и O(log(n))

Ошибка в алгоритме перемножения двух матриц - C++
Ошибка в алгоритме произведения двух матриц. Я так понял, что где-то выходит за границы массивов. private: void com(int size, int...

Массив: перемножения двух матриц A,B размерности n*n - C++
Разработать программу перемножения двух матриц A,B размерности n*n. Все матрицы размещаются в оперативной памяти динамически с помощью...

Функция перемножения матриц выдает неверный результат - C++
int **mas_1; int **mas_2; int **mas_3;//глобальные void multiply(int row1, int col1, int row2, int col2) { if (row1 == col2) ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru