#include <stdio.h>
#include <iostream>
#include <time.h>
int** new_mass(const int n)
{
int** mass = new int *[n];
if (!mass)
{
return NULL;
}
for (int i = 0; i<n; i++)
{
mass[i] = new int[n];
if (!mass[i])
{
return NULL;
}
}
return mass;
}
int** del_mass(const int n, int** mass)
{
for (int i = 0; i<n; i++)
delete[] mass[i];
delete[] mass;
return NULL;
}
int** read_mass(int *pn)
{
char s[80];
printf("Enter filename for read: "); gets_s(s);
if (!f)
{
return NULL;
}
{
return NULL;
}
int** mass = new_mass(*pn);
if (!mass)
{
return NULL;
}
for (int i = 0; i < *pn; i++)
{
for (int j = 0; j < *pn; j++)
{
if (fscanf(f
, "%i", &mass
[i
][j
]) != 1) {
mass = del_mass(*pn, mass);
return NULL;
}
}
}
return mass;
}
int vvod(int **mass, int *n, int *t)
{
int** mass = new_mass(*n);
for (int i = 0; i < *n; i++)
for (int j = 0; j < *n; j++)
{
printf("\nВведите элемент %i: ", i
); while (mass[i] < n)
{
}
t = mass[i];
}
return *t;
}
int print_mass(const int n, int** mass)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
}
}
return 0;
}
int plus_mass(const int n, int** A, int** B)
{
int** mass;
mass = new_mass(n);
if (!mass) { return 1; }
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
mass[i][j] = A[i][j];
print_mass(n, mass);
mass = del_mass(n, mass);
return 0;
}
int mult_mass(const int n, int** A, int** B)
{
int** mass;
mass = new_mass(n);
if (!mass) { return 1; }
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
mass[i][j] = 0;
for (int k = 0; k < n; k++)
{
mass[i][j] += A[i][k] * B[k][j];
}
}
print_mass(n, mass);
mass = del_mass(n, mass);
return 0;
}
int main()
{
int n;
int** A;
char ch;
char s[81];
do {
A = read_mass(&n);
if (A)
print_mass(n, A);
mult_mass(n, A, A);
A = del_mass(n, A);
}
gets_s(s);
ch = s[0];
while ((ch != 'y') && (ch != 'n')) {
printf("Press \"y\" for repeat or \"n\" for exit: "); gets_s(s);
ch = s[0];
}
} while (ch == 'y');
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDx0aW1lLmg+CmludCoqIG5ld19tYXNzKGNvbnN0IGludCBuKSAKewoJaW50KiogbWFzcyA9IG5ldyBpbnQgKltuXTsKCWlmICghbWFzcykgCgl7CgkJcHJpbnRmKCJFcnJvciBpbiBuZXcuXG4iKTsKCQlyZXR1cm4gTlVMTDsKCX0KCWZvciAoaW50IGkgPSAwOyBpPG47IGkrKykgCgl7CgkJbWFzc1tpXSA9IG5ldyBpbnRbbl07CgkJaWYgKCFtYXNzW2ldKQoJCXsKCQkJcHJpbnRmKCJFcnJvciBpbiBuZXcuXG4iKTsKCQkJcmV0dXJuIE5VTEw7CgkJfQoJfQoJcmV0dXJuIG1hc3M7Cn0KaW50KiogZGVsX21hc3MoY29uc3QgaW50IG4sIGludCoqIG1hc3MpIAp7Cglmb3IgKGludCBpID0gMDsgaTxuOyBpKyspCgkJZGVsZXRlW10gbWFzc1tpXTsKCWRlbGV0ZVtdIG1hc3M7CglyZXR1cm4gTlVMTDsKfQppbnQqKiByZWFkX21hc3MoaW50ICpwbikgCnsKCWNoYXIgc1s4MF07CglwcmludGYoIkVudGVyIGZpbGVuYW1lIGZvciByZWFkOiAiKTsKCWdldHNfcyhzKTsKCUZJTEUgKmYgPSBmb3BlbihzLCAiciIpOwoJaWYgKCFmKSAKCXsKCQlwcmludGYoIkVycm9yIGluIG9wZW4uXG4iKTsKCQlyZXR1cm4gTlVMTDsKCX0KCWlmIChmc2NhbmYoZiwgIiVpIiwgcG4pICE9IDEpIAoJewoJCXByaW50ZigiRXJyb3IgaW4gcmVhZC5cbiIpOwoJCWZjbG9zZShmKTsKCQlyZXR1cm4gTlVMTDsKCX0KCWludCoqIG1hc3MgPSBuZXdfbWFzcygqcG4pOwoJaWYgKCFtYXNzKQoJewoJCWZjbG9zZShmKTsKCQlyZXR1cm4gTlVMTDsKCX0KCWZvciAoaW50IGkgPSAwOyBpIDwgKnBuOyBpKyspCgl7CgkJZm9yIChpbnQgaiA9IDA7IGogPCAqcG47IGorKykgCgkJewoJCQlpZiAoZnNjYW5mKGYsICIlaSIsICZtYXNzW2ldW2pdKSAhPSAxKQoJCQl7CgkJCQlwcmludGYoIkVycm9yIGluIHJlYWQuXG4iKTsKCQkJCW1hc3MgPSBkZWxfbWFzcygqcG4sIG1hc3MpOwoJCQkJZmNsb3NlKGYpOwoJCQkJcmV0dXJuIE5VTEw7CgkJCX0KCQl9Cgl9CglmY2xvc2UoZik7CglyZXR1cm4gbWFzczsKfQppbnQgdnZvZChpbnQgKiptYXNzLCBpbnQgKm4sIGludCAqdCkKewoJaW50KiogbWFzcyA9IG5ld19tYXNzKCpuKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgKm47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8ICpuOyBqKyspCgkJewoJCQlwcmludGYoIlxu0JLQstC10LTQuNGC0LUg0Y3Qu9C10LzQtdC90YIgJWk6ICIsIGkpOwoJCQlzY2FuZigiJWkiLCAmbWFzc1tpXSk7CgkJCXdoaWxlIChtYXNzW2ldIDwgbikKCQkJewoJCQkJcHJpbnRmKCLQn9C+0LLRgtC+0YDQuNGC0LUg0LLQstC+0LQ6ICIpOwoJCQkJc2NhbmYoIiVpIiwgJm1hc3NbaV0pOwoJCQl9CgkJCXQgPSBtYXNzW2ldOwoJCX0KCXJldHVybiAqdDsKfQppbnQgcHJpbnRfbWFzcyhjb25zdCBpbnQgbiwgaW50KiogbWFzcykKewoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgl7CgkJZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCgkJewoJCQlwcmludGYoIiU3aSAiLCBtYXNzW2ldW2pdKTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoJfQoJcHJpbnRmKCJcbiIpOwoJcmV0dXJuIDA7Cn0KaW50IHBsdXNfbWFzcyhjb25zdCBpbnQgbiwgaW50KiogQSwgaW50KiogQikKewoJaW50KiogbWFzczsKCW1hc3MgPSBuZXdfbWFzcyhuKTsKCWlmICghbWFzcykgeyByZXR1cm4gMTsgfQoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCgkJCW1hc3NbaV1bal0gPSBBW2ldW2pdOwoJcHJpbnRfbWFzcyhuLCBtYXNzKTsKCW1hc3MgPSBkZWxfbWFzcyhuLCBtYXNzKTsKCXJldHVybiAwOwp9CmludCBtdWx0X21hc3MoY29uc3QgaW50IG4sIGludCoqIEEsIGludCoqIEIpIAp7CglpbnQqKiBtYXNzOwoJbWFzcyA9IG5ld19tYXNzKG4pOwoJaWYgKCFtYXNzKSB7IHJldHVybiAxOyB9Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgCgkJewoJCQltYXNzW2ldW2pdID0gMDsKCQkJZm9yIChpbnQgayA9IDA7IGsgPCBuOyBrKyspCgkJCXsKCQkJCW1hc3NbaV1bal0gKz0gQVtpXVtrXSAqIEJba11bal07CgkJCX0KCQl9CglwcmludF9tYXNzKG4sIG1hc3MpOwoJbWFzcyA9IGRlbF9tYXNzKG4sIG1hc3MpOwoJcmV0dXJuIDA7Cn0KCgppbnQgbWFpbigpIAp7CglzZXRsb2NhbGUoTENfQUxMLCAiUnVzc2lhbiIpOwoJaW50IG47CglpbnQqKiBBOwoJY2hhciBjaDsKCWNoYXIgc1s4MV07CglkbyB7CgkJQSA9IHJlYWRfbWFzcygmbik7CgkJaWYgKEEpIAoJCQoJCQlwcmludF9tYXNzKG4sIEEpOwoJCQltdWx0X21hc3MobiwgQSwgQSk7CgkJCUEgPSBkZWxfbWFzcyhuLCBBKTsKCQl9CgoJCXByaW50ZigiUmVwZWF0ICh5L24pPyAiKTsKCQlnZXRzX3Mocyk7CgkJY2ggPSBzWzBdOwoKCgkJd2hpbGUgKChjaCAhPSAneScpICYmIChjaCAhPSAnbicpKSB7CgkJCXByaW50ZigiUHJlc3MgXCJ5XCIgZm9yIHJlcGVhdCBvciBcIm5cIiBmb3IgZXhpdDogIik7CgkJCWdldHNfcyhzKTsKCQkJY2ggPSBzWzBdOwoJCX0KCX0gd2hpbGUgKGNoID09ICd5Jyk7CgoJcmV0dXJuIDA7Cn0=