#include<iostream>
#include<time.h>
using namespace std;
void MatrAlloc(int ***a, int n, int m) {
*a = new int*[n];
for (int i = 0; i < n; i++) {
(*a)[i] = new int[m];
}
}
void MatrGen(int** a, int n, int m) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
a[i][j] = rand() % 20 + 1;
}
}
}
void MatrOutp(int** a, int n, int m) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << a[i][j] << "\t";
}
cout << endl;
}
}
int SumMatrix(int** a, int** b, int n1, int m1, int n2, int m2, int** c) {
if (n1 != n2 || m1 != m2) return -1;
for (int i = 0; i < n1; ++i) {
for (int j = 0; j < m1; ++j) {
c[i][j] = a[i][j] + b[i][j];
}
}
}
int MatrTransp(int** a, int n1, int m1, int** c, int n2, int m2) {
if (n1 != m2 || m1 != n2) return -1;
for (int i = 0; i < n1; ++i) {
for (int j = 0; j < m1; ++j) {
c[j][i] = a[i][j];
}
}
}
int MatrMult(int** a, int n1, int m1) {
int k;
cout << "Введите k: ";
cin >> k;
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < m1; j++)
{
a[i][j] = (a[i][j]) * k;;
}
}
}
int main() {
int ** A, ** B, ** res, ** a;
int a1, a2, b1, b2, k1=0;
srand(0);
cout << "Введите количество строк матрицы A: ";
cin >> a1;
cout << "Введите количество столбцов матрицы A: ";
cin >> a2;
cout << "Введите количество строк матрицы B: ";
cin >> b1;
cout << "Введите количество столбцов матрицы B: ";
cin >> b2;
system("cls");
MatrAlloc(&A, a1, a2);
MatrAlloc(&B, b1, b2);
MatrGen(A, a1, a2);
MatrGen(B, b1, b2);
cout << "Матрица A:" << endl;
MatrOutp(A, a1, a2);
cout << "\nМатрица B:" << endl;
MatrOutp(B, b1, b2);
MatrAlloc(&res, a1, a2);
cout << "\nМатрица C (A+B):" << endl;
SumMatrix(A, B, a1, a2, b1, b2, res);
MatrOutp(res, b1, b2);
MatrAlloc(&a, a2, a1);
MatrTransp(res, b1, b2, a, b2, b1);
cout << "\nМатрица C(t):" << endl;
MatrOutp(a, b2, b1);
cout << "\nМатрица k*A:" << endl;
MatrMult(A, a1, a2);
MatrOutp(A, a1, a2);
printf("\n");
system("pause");
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CgojaW5jbHVkZTx0aW1lLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIE1hdHJBbGxvYyhpbnQgKioqYSwgaW50IG4sIGludCBtKSB7CiAgICAqYSA9IG5ldyBpbnQqW25dOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAoKmEpW2ldID0gbmV3IGludFttXTsKICAgIH0KfQp2b2lkIE1hdHJHZW4oaW50KiogYSwgaW50IG4sIGludCBtKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbTsgKytqKSB7CiAgICAgICAgICAgIGFbaV1bal0gPSByYW5kKCkgJSAyMCArIDE7CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIE1hdHJPdXRwKGludCoqIGEsIGludCBuLCBpbnQgbSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG07ICsraikgewogICAgICAgICAgICBjb3V0IDw8IGFbaV1bal0gPDwgIlx0IjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQp9CgppbnQgU3VtTWF0cml4KGludCoqIGEsIGludCoqIGIsIGludCBuMSwgaW50IG0xLCBpbnQgbjIsIGludCBtMiwgaW50KiogYykgewogICAgaWYgKG4xICE9IG4yIHx8IG0xICE9IG0yKSByZXR1cm4gLTE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4xOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG0xOyArK2opIHsKICAgICAgICAgICAgY1tpXVtqXSA9IGFbaV1bal0gKyBiW2ldW2pdOwogICAgICAgIH0KICAgIH0KfQoKCmludCBNYXRyVHJhbnNwKGludCoqIGEsIGludCBuMSwgaW50IG0xLCBpbnQqKiBjLCBpbnQgbjIsIGludCBtMikgewogICAgaWYgKG4xICE9IG0yIHx8IG0xICE9IG4yKSByZXR1cm4gLTE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4xOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG0xOyArK2opIHsKICAgICAgICAgICAgY1tqXVtpXSA9IGFbaV1bal07CiAgICAgICAgfQogICAgfQp9CgppbnQgTWF0ck11bHQoaW50KiogYSwgaW50IG4xLCBpbnQgbTEpIHsKICAgIGludCBrOwogICAgY291dCA8PCAi0JLQstC10LTQuNGC0LUgazogIjsKICAgIGNpbiA+PiBrOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuMTsgaSsrKQogICAgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbTE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGFbaV1bal0gPSAoYVtpXVtqXSkgKiBrOzsKICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW50ICoqIEEsICoqIEIsICoqIHJlcywgKiogYTsKICAgIGludCBhMSwgYTIsIGIxLCBiMiwgazE9MDsKICAgCiAgICBzcmFuZCgwKTsKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0Log0LzQsNGC0YDQuNGG0YsgQTogIjsKICAgIGNpbiA+PiBhMTsKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQvtC70LHRhtC+0LIg0LzQsNGC0YDQuNGG0YsgQTogIjsKICAgIGNpbiA+PiBhMjsKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0Log0LzQsNGC0YDQuNGG0YsgQjogIjsKICAgIGNpbiA+PiBiMTsKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQvtC70LHRhtC+0LIg0LzQsNGC0YDQuNGG0YsgQjogIjsKICAgIGNpbiA+PiBiMjsKCiAgICBzeXN0ZW0oImNscyIpOwoKICAgIE1hdHJBbGxvYygmQSwgYTEsIGEyKTsKICAgIE1hdHJBbGxvYygmQiwgYjEsIGIyKTsKICAgIE1hdHJHZW4oQSwgYTEsIGEyKTsKICAgIE1hdHJHZW4oQiwgYjEsIGIyKTsKICAgIGNvdXQgPDwgItCc0LDRgtGA0LjRhtCwIEE6IiA8PCBlbmRsOwogICAgTWF0ck91dHAoQSwgYTEsIGEyKTsKICAgIGNvdXQgPDwgIlxu0JzQsNGC0YDQuNGG0LAgQjoiIDw8IGVuZGw7CiAgICBNYXRyT3V0cChCLCBiMSwgYjIpOwoKICAgIE1hdHJBbGxvYygmcmVzLCBhMSwgYTIpOwogICAgY291dCA8PCAiXG7QnNCw0YLRgNC40YbQsCBDIChBK0IpOiIgPDwgZW5kbDsKICAgIFN1bU1hdHJpeChBLCBCLCBhMSwgYTIsIGIxLCBiMiwgcmVzKTsKICAgIE1hdHJPdXRwKHJlcywgYjEsIGIyKTsKCiAgICBNYXRyQWxsb2MoJmEsIGEyLCBhMSk7CiAgICBNYXRyVHJhbnNwKHJlcywgYjEsIGIyLCBhLCBiMiwgYjEpOwogICAgY291dCA8PCAiXG7QnNCw0YLRgNC40YbQsCBDKHQpOiIgPDwgZW5kbDsKICAgIE1hdHJPdXRwKGEsIGIyLCBiMSk7CgogICAgY291dCA8PCAiXG7QnNCw0YLRgNC40YbQsCBrKkE6IiA8PCBlbmRsOwogICAgTWF0ck11bHQoQSwgYTEsIGEyKTsKICAgIE1hdHJPdXRwKEEsIGExLCBhMik7CiAgICBwcmludGYoIlxuIik7CiAgICBzeXN0ZW0oInBhdXNlIik7CiAgICByZXR1cm4gMDsKfQ==