#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "matr.h"
#include <locale.h>
// Головна функція
int main()
{
setlocale(LC_ALL, "Ukr");
int n;
int m[50][50];
// Запитуємо розмір матриці
printf("Введiть розмiр матрицi (мiнiмум 3, максимум 50): ");
scanf("%d", &n);
// Заповнюємо матрицю
srand(time(NULL));
fillMatrix(m, n);
// Виводимо матрицю на екран
printf("Матриця:\n");
printMatrix(m, n);
// Обчислюємо визначник 3x3 частини матриці, яка знаходиться у лівому нижньому куті
printf("Визначник 3x3 частини матрицi, яка знаходиться у лiвому нижньому кутi: %d\n", det3x3leftdown(m, n));
// Знаходимо суму елементів середнього рядка і середнього стовбця
printf("Сума елементiв середнього рядка та стовбця: %d\n", findSum(m, n));
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Функція заповнення матриці
void fillMatrix(int m[][50], int n)
{
int isrand;
int num;
printf("Як заповнити матрицю?\n0 - вручну\n"
"1 випадковими числами вiд -100 до 0: \n");
scanf("%d", &isrand);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
// Генеруємо випадкове число в діапазоні від -100 до 0
if (isrand)
{
m[i][j] = -rand() % 101;;
}
else
{
printf("Введiть елемент a[%d][%d] ", i, j);
scanf("%d", &m[i][j]);
}
}
}
}
// Функція виведення матриці
void printMatrix(int m[][50], int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d\t", m[i][j]);
}
printf("\n");
}
}
int findSum(int m[][50], int n)
{
int s = 0;
for (int i = 0; i < n; i++)
{
s += m[n / 2][i] + m[i][n / 2];
// printf("%d\t %d \n", m[n/2][i],m[i][n/2]);
}
return s;
}
int det3x3leftdown(int m[][50], int n)
{
/*printf("\n%05d %05d %5d \n-%03d %03d %3d ", m[n-3][0]*m[n-2][1]*m[n-1][2],
m[n-3][1]*m[n-2][2]*m[n-1][0],
m[n-3][2]*m[n-2][0]*m[n-1][1],
m[n-3][2]*m[n-2][1]*m[n-1][0],
m[n-3][1]*m[n-2][0]*m[n-1][2],
m[n-3][0]*m[n-2][2]*m[n-1][1]
);
*/
return m[n - 3][0] * m[n - 2][1] * m[n - 1][2] +
m[n - 3][1] * m[n - 2][2] * m[n - 1][0] +
m[n - 3][2] * m[n - 2][0] * m[n - 1][1] -
m[n - 3][2] * m[n - 2][1] * m[n - 1][0] -
m[n - 3][1] * m[n - 2][0] * m[n - 1][2] -
m[n - 3][0] * m[n - 2][2] * m[n - 1][1];
}
// Оголошення функцій
void fillMatrix(int m[][50], int n);
void printMatrix(int m[][50], int n);
int findSum(int m[][50], int n);
int det3x3leftdown(int m[][50], int n);