Загрузка данных


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);
}