int main(int argc, char *argv[])
{
int m, n, kol;
matr a, b, c, sum, proizv, inv;
float da, db, dc;
char filename[FILENAME_MAX];
setlocale(LC_ALL, "Russian");
printf("Введите размеры матриц:\n");
kol = scanf("%i %i", &m, &n);
if (kol != 2)
{
printf("Неверные размеры.\n");
return -1;
}
InitMatrix(&a, m, n);
InitMatrix(&b, m, n);
InitMatrix(&c, n, m);
printf("Введите имя файла для заполнения матрицы A или введите + для генерации случайных чисел:\n");
kol = scanf("%s", filename);
if (kol != 1)
{
printf("Неверный ввод.\n");
return -1;
}
else if (filename[0] == '+')
{
FillRandom(&a);
}
else
{
FillFromFile(&a, filename);
}
printf("Введите имя файла для заполнения матрицы B или введите + для генерации случайных чисел:\n");
kol = scanf("%s", filename);
if (kol != 1)
{
printf("Неверный ввод.\n");
return -1;
}
else if (filename[0] == '+')
{
FillRandom(&b);
}
else
{
FillFromFile(&b, filename);
}
printf("Введите имя файла для заполнения матрицы C или введите + для генерации случайных чисел:\n");
kol = scanf("%s", filename);
if (kol != 1)
{
printf("Неверный ввод.\n");
return -1;
}
else if (filename[0] == '+')
{
FillRandom(&c);
}
else
{
FillFromFile(&c, filename);
}
printf("Матрица A\n");
PrintMatrix(&a);
printf("\n");
printf("Матрица B\n");
PrintMatrix(&b);
printf("\n");
printf("Матрица B\n");
PrintMatrix(&c);
printf("\n");
sum = SumMatrices(&a, &b);
printf("Сумма матриц A и B\n");
PrintMatrix(&sum);
printf("\n");
proizv = MultiplyMatrices(&a, &c);
printf("Произведение матриц A и C\n");
PrintMatrix(&proizv);
printf("\n");
da = Determinant(&a);
db = Determinant(&b);
dc = Determinant(&c);
printf("Определители матриц A, B и C\n");
printf("%8.2f, %8.2f, %8.2f\n", da, db, dc);
printf("\n");
inv = InverseMatrix(&a);
printf("Лбратная матрица A\n");
PrintMatrix(&inv);
printf("\n");
FreeMatrix(&a);
FreeMatrix(&b);
FreeMatrix(&c);
FreeMatrix(&sum);
FreeMatrix(&proizv);
FreeMatrix(&inv);
}