Привет всем, каким образом можно доработать код в последовательном умножении?
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
| // ConsoleApplication7.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
int main()
{
int n, m, q, i, j;
srand(time(NULL));
clock_t time_test;
cout << "Vvedite kolichestvo colonok v matritse A i kolichestvo strok v matritse B: ";
cin >> n;
cout << "Vvedite kolichestvo strok v matritse A: ";
cin >> m;
cout << "Vvedite kolichestvo strok v matritse B: ";
cin >> q;
int **aArr = new int *[m];
for (i = 0; i < m; i++)
aArr[i] = new int[n];
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
aArr[i][j] = rand() % 20 + 1;
}
}
if (n <= 15 && q <= 15)
{
cout << "Matrica A: " << endl;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
cout << setw(5) << aArr[i][j];
cout << endl;
}
}
int **bArr = new int *[n];
for (i = 0; i < n; i++)
{
bArr[i] = new int[q];
for (j = 0; j < q; j++)
{
bArr[i][j] = rand() % 20 + 1;;
}
}
if (n <= 15 && q <= 15)
{
cout << "Matrica B: " << endl;
for (i = 0; i < n; i++)
{
for (j = 0; j < q; j++)
cout << setw(5) << bArr[i][j];
cout << endl;
}
}
int **cArr = new int *[m];
for (i = 0; i < m; i++)
cArr[i] = new int[q];
cout << "Please, wait..." << endl;
time_test = clock();
for (int i = 0; i < m; i++)
{
for (int j = 0; j < q; j++)
{
cArr[i][j] = 0;
for (int v = 0; v < n; v++)
{
cArr[i][j] += aArr[i][v] * bArr[v][j];
}
}
}
time_test = clock() - time_test;
cout << "-----Success!-----" << endl << "Time: " << (double)time_test / CLOCKS_PER_SEC << " seconds" << endl;
if (n <= 15 && q <= 15)
{
cout << "Matrica C: " << endl;
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
cout << setw(5) << cArr[i][j];
cout << endl;
}
}
getchar(); getchar();
return 0;
} |
|