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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Спецификатор %n http://www.cyberforum.ru/cpp-beginners/thread218134.html
Добрый вечер! Столкнулся с проблемой использования спецификатора %n, когда пытался вывести кол-во распечатанных символов функцией printf(). Вылезает ошибка : Debug Assertion Failed! Expression: ("'n' format specifier disabled", 0) For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts. Покопался в справке, но ничего особенного там не...
C++ Удалить подряд идущие вхождения слова в предложениях Дана строка содержащая текст на русском языке. В предложении некоторые слова записаны подряд несколько раз.Заканчивается предложение символом "/". Получить в новой строке отредактированные текст в котором удалены подряд идущие вхождения слова в предложениях. Благодарю заранее за помощь! Завтра защита! http://www.cyberforum.ru/cpp-beginners/thread218127.html
C++ Проверьте чтение из файла в массив
Есть код: #include <stdio.h> #include <io.h> #include <conio.h> #include <math.h> float x,y,a; void main() { clrscr();
C++ Проблемка с массивом
Всем привет, в общем у меня такая задача: в целочисленном массиве после каждых 3х отрицательных чисел идущих подряд вставить 0. Например первоначальный массив 17 32 -3 -5 -7 23 8, новый массив должен выглядеть так 17 32 -3 -5 -7 0 23 8. Уже часа 3 ломаю голову, ничего не могу придумать =(. В самом массиве у меня 50 элементов, заполняется он случайным образом, можно конечно прописать сдвиг так:...
C++ Парсер массива http://www.cyberforum.ru/cpp-beginners/thread218115.html
Поскажите пожалуйста, парсер массива чисел на входе: строка вида "число|число|число|число" и кол-во чисел. число - целое, на выходе: массив из чисел функцию strtok и аналоги не использовать, а atoi можно. Первый раз пишу парсер, куча ошибок и не доработок, помогите плз #include <iostream> using namespace std; void main () {
C++ Откорректировать программу Пожалуйста, переделайте программу, чтобы использовалась адресная арифметика , как я понял работа с указателями(*) Вот сам код: #include <stdio.h> #include <conio.h> #include <locale.h> void main() { подробнее

Показать сообщение отдельно
Кемаль
 Аватар для Кемаль
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 38
22.12.2010, 18:25     Функция перемножения матриц.
Функция mult, прошу помощи, ибо не пойму в чем ошибка.
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <math.h>
#include <time.h>
#include <cstdlib>
using namespace std;
void shape(int** x, int n, int m, int** y, int** c);
void mult (int** x, int n, int m, int** y, int** mt);
int main ()
{
    int n;
    int m;
    cout <<"Enter the number of strings of matrix A"<<endl;
    cin >> n;
    cout <<"Enter the number of columns of matrix A"<<endl;
    cin >> m;
    srand(time(NULL));
    int **a = new int* [n];
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [m];
    }
    cout <<"The array A is"<< endl;
    for (int i = 0; i< n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            a[i][j] = rand()% 10;
            cout << a[i][j]<<' ';
        }
        cout << endl;
    }
    // определили первую матрицу
    int z;
    int w;
    cout <<"Enter the number of strings of matrix B"<<endl;
    cin >> z;
    cout <<"Enter the number of columns of matrix B"<<endl;
    cin >> w;
    int **b = new int* [z];
    for (int i = 0; i < z; i++)
    {
        b[i] = new int [w];
    }
    cout <<"The array B is"<< endl;
    for (int i = 0; i< z; i++)
    {
        for (int j = 0; j < w; j++)
        {
            b[i][j] = rand()% 10;
            cout << b[i][j]<<' ';
        }
        cout << endl;
    }
    // определили вторую матрицу
    int l;
    int k;
    cout <<"Enter the number of strings of matrix C"<<endl;
    cin >> l;
    cout <<"Enter the number of columns of matrix C"<<endl;
    cin >> k;
    int **add = new int* [l];
    for (int i = 0; i < l; i++)
    {
        add[i] = new int [k];
    }
    for (int i = 0; i< l; i++)
    {
        for (int j = 0; j < k; j++)
        {
            add[i][j] = 0;
        }
        cout << endl;
    }
    if (n == z && m == w)
        shape (a, n, m, b, add);
    cout <<" The addition is" << endl;
    for (int i = 0; i< l; i++)
    {
        for (int j = 0; j < k; j++)
        {
            cout << add[i][j]<<' ';
        }
        cout << endl;
    }
    // матрица- заполнитель умножения
    int **mt = new int* [l];
    for (int i = 0; i < l; i++)
    {
        mt[i] = new int [k];
    }
    for (int i = 0; i< l; i++)
    {
        for (int j = 0; j < k; j++)
        {
            mt[i][j] = 0;
        }
        cout << endl;
    }
    if (m == z)
        mult(a, n, m, b, mt);
    else cout <<"Error in mult"<< endl;
    cout <<" The mult is is" << endl;
    for (int i = 0; i< l; i++)
    {
        for (int j = 0; j < k; j++)
        {
            cout << add[i][j]<<' ';
        }
        cout << endl;
    }
    system ("PAUSE");
    for(int i = 0; i < n; i++)
    delete[] a[i];
    delete[] a;
    for(int i = 0; i < z; i++)
    delete[] b[i];
    delete[] b;
    for(int i = 0; i < l; i++)
    delete[] add[i];
    delete[] add;
    for(int i = 0; i < l; i++)
    delete[] mt[i];
    delete[] mt;
    return 0;
}
void shape(int** x, int n, int m, int** y, int** add)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            add[i][j] = x[i][j] + y[i][j];
        }
    }
}
void mult(int** x, int n, int m, int** y, int** mt)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            {
                mt[i][j] += x[i][i] * y[i][j];
            }
        }
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru