#include <stdio.h>
#include <locale.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
int ** createMatrix(unsigned int n)
{
int **A
= malloc(n
* sizeof(int*)); for(unsigned int i = 0; i < n; i++)
{
A
[i
] = malloc(n
* sizeof(int)); }
return A;
}
void killMatrix(int**A, unsigned int n)
{
for(unsigned int i = 0; i < n; i++)
{
}
}
int** mult(int**A, int**B, unsigned int n)
{
int ** R = createMatrix(n);
for(unsigned int i = 0; i < n; i++)
for(unsigned int j = 0; j < n; j++)
{
R[i][j] = 0;
for(unsigned int k = 0; k < n; k++)
R[i][j] += A[i][k] * B[k][j];
}
return R;
}
int** sum(int**A, int**B, unsigned int n)
{
int ** R = createMatrix(n);
for(unsigned int i = 0; i < n; i++)
for(unsigned int j = 0; j < n; j++)
R[i][j] = A[i][j]+B[i][j];
return R;
}
void printMatrix(int** A, unsigned int n)
{
for(unsigned int i = 0; i < n; i++) // вывод матрицы А
{
for(unsigned int j = 0; j < n; j++)
}
}
int main(void)
{
unsigned int n;
printf("Введите размер матрицы n: ");
int **A = createMatrix(n);
int **B = createMatrix(n);
int **C = createMatrix(n);
for(unsigned int i = 0; i < n; i++)
for(unsigned int j = 0; j < n; j++)
{
}
printMatrix(A,n);
printMatrix(B,n);
printMatrix(C,n);
int ** F = mult(C,A,n);
int ** G = mult(A,C,n);
int ** H = mult(G,B,n);
killMatrix(G,n);
G = sum(F,H,n);
killMatrix(F,n);
killMatrix(H,n);
printf("\nМатрица-результат:\n"); printMatrix(G,n);
killMatrix(G,n);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxsb2NhbGUuaD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8dGltZS5oPgoKaW50ICoqIGNyZWF0ZU1hdHJpeCh1bnNpZ25lZCBpbnQgbikKewogICAgaW50ICoqQSA9IG1hbGxvYyhuICogc2l6ZW9mKGludCopKTsKICAgIGZvcih1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgQVtpXSA9IG1hbGxvYyhuICogc2l6ZW9mKGludCkpOwogICAgfQogICAgcmV0dXJuIEE7Cn0KCnZvaWQga2lsbE1hdHJpeChpbnQqKkEsIHVuc2lnbmVkIGludCBuKQp7CiAgICBmb3IodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGZyZWUoQVtpXSk7CiAgICB9CiAgICBmcmVlKEEpOwp9CgppbnQqKiBtdWx0KGludCoqQSwgaW50KipCLCB1bnNpZ25lZCBpbnQgbikKewogICAgaW50ICoqIFIgPSBjcmVhdGVNYXRyaXgobik7CiAgICBmb3IodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgIGZvcih1bnNpZ25lZCBpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBSW2ldW2pdID0gMDsKICAgICAgICAgICAgZm9yKHVuc2lnbmVkIGludCBrID0gMDsgayA8IG47IGsrKykKICAgICAgICAgICAgICAgIFJbaV1bal0gKz0gQVtpXVtrXSAqIEJba11bal07CiAgICAgICAgfQogICAgcmV0dXJuIFI7Cn0KCmludCoqIHN1bShpbnQqKkEsIGludCoqQiwgdW5zaWduZWQgaW50IG4pCnsKICAgIGludCAqKiBSID0gY3JlYXRlTWF0cml4KG4pOwogICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBmb3IodW5zaWduZWQgaW50IGogPSAwOyBqIDwgbjsgaisrKQogICAgICAgICAgICBSW2ldW2pdID0gQVtpXVtqXStCW2ldW2pdOwogICAgcmV0dXJuIFI7Cn0KCnZvaWQgcHJpbnRNYXRyaXgoaW50KiogQSwgdW5zaWduZWQgaW50IG4pCnsKICAgIGZvcih1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBuOyBpKyspIC8vINCy0YvQstC+0LQg0LzQsNGC0YDQuNGG0Ysg0JAKICAgIHsKICAgICAgICBmb3IodW5zaWduZWQgaW50IGogPSAwOyBqIDwgbjsgaisrKQogICAgICAgICAgICBwcmludGYoIiVkXHQiLCBBW2ldW2pdKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICB9Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIHVuc2lnbmVkIGludCBuOwogICAgc3JhbmQodGltZShOVUxMKSk7CiAgICBwcmludGYoItCS0LLQtdC00LjRgtC1INGA0LDQt9C80LXRgCDQvNCw0YLRgNC40YbRiyBuOiAiKTsKICAgIHNjYW5mKCIldSIsICZuKTsKCiAgICBpbnQgKipBID0gY3JlYXRlTWF0cml4KG4pOwogICAgaW50ICoqQiA9IGNyZWF0ZU1hdHJpeChuKTsKICAgIGludCAqKkMgPSBjcmVhdGVNYXRyaXgobik7CgogICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBmb3IodW5zaWduZWQgaW50IGogPSAwOyBqIDwgbjsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgQVtpXVtqXSA9IHJhbmQoKSAlIDEwOwogICAgICAgICAgICBCW2ldW2pdID0gcmFuZCgpICUgMTA7CiAgICAgICAgICAgIENbaV1bal0gPSByYW5kKCkgJSAxMDsKICAgICAgICB9CgoKICAgIHByaW50ZigiXG7QnNCw0YLRgNC40YbQsCDQkDpcbiIpOwogICAgcHJpbnRNYXRyaXgoQSxuKTsKCiAgICBwcmludGYoIlxu0JzQsNGC0YDQuNGG0LAg0JI6XG4iKTsKICAgIHByaW50TWF0cml4KEIsbik7CgogICAgcHJpbnRmKCJcbtCc0LDRgtGA0LjRhtCwINChOlxuIik7CiAgICBwcmludE1hdHJpeChDLG4pOwoKICAgIGludCAqKiBGID0gbXVsdChDLEEsbik7CiAgICBpbnQgKiogRyA9IG11bHQoQSxDLG4pOwogICAgaW50ICoqIEggPSBtdWx0KEcsQixuKTsKICAgIGtpbGxNYXRyaXgoRyxuKTsKICAgIEcgPSBzdW0oRixILG4pOwogICAga2lsbE1hdHJpeChGLG4pOwogICAga2lsbE1hdHJpeChILG4pOwoKICAgIHByaW50ZigiXG7QnNCw0YLRgNC40YbQsC3RgNC10LfRg9C70YzRgtCw0YI6XG4iKTsKICAgIHByaW50TWF0cml4KEcsbik7CiAgICBraWxsTWF0cml4KEcsbik7CgoKfQo=