Задача 3

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include "matrix.h" #include <locale.h> int main() { setlocale(LC_CTYPE, "ukr"); int matrix[MAX_ROWS][MAX_COLS]; int size = 7; // Відповідно до рисунку з варіанту — матриця 6x6 int choice; printf("Оберiть спосiб заповнення матрицi:\n"); printf("1 - вручну\n2 - випадковими числами [-50; 110]\nВаш вибiр: "); scanf("%d", &choice); if (choice == 1) fillMatrixManual(matrix, size, size); else fillMatrixRandom(matrix, size, size, -50, 110); printMatrix(matrix, size, size); int sum = calculateZoneSum(matrix, size); printf("Сума елементiв у зафарбованiй зонi: %d\n", sum); int submatrix[3][3]; extractSubmatrix3x3(matrix, submatrix, 1, 4); // Відступ 1 вниз, 4 праворуч int det = calculateDeterminant3x3(submatrix); printf("Визначник пiдматрицi 3х3: %d\n", det); return 0; }
#include <stdio.h> #include <stdlib.h> #include <time.h> #include "matrix.h" void fillMatrixManual(int matrix[MAX_ROWS][MAX_COLS], int rows, int cols) { printf("Введiть елементи матрицi (%dx%d):\n", rows, cols); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) { printf("matrix[%d][%d] = ", i, j); scanf("%d", &matrix[i][j]); } } void fillMatrixRandom(int matrix[MAX_ROWS][MAX_COLS], int rows, int cols, int min, int max) { srand(time(NULL)); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) matrix[i][j] = rand() % (max - min + 1) + min; } void printMatrix(int matrix[MAX_ROWS][MAX_COLS], int rows, int cols) { printf("Матриця:\n"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) printf("%5d", matrix[i][j]); printf("\n"); } } int calculateZoneSum(int matrix[MAX_ROWS][MAX_COLS], int size) { int sum = 0; for (int i = 0; i < size; i++) { // Головна діагональ з правого верхнього до лівого нижнього sum += matrix[i][size - 1 - i]; // Верхня діагональ (на один рядок вище) if (i > 0) sum += matrix[i - 1][size - 1 - i]; // Нижня діагональ (на один рядок нижче) if (i < size - 1) sum += matrix[i + 1][size - 1 - i]; } return sum; } void extractSubmatrix3x3(int src[MAX_ROWS][MAX_COLS], int dest[3][3], int start_row, int start_col) { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) dest[i][j] = src[start_row + i][start_col + j]; } int calculateDeterminant3x3(int m[3][3]) { return m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) - m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) + m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]); }
#ifndef MATRIX_H #define MATRIX_H #define MAX_ROWS 7 #define MAX_COLS 7 void fillMatrixManual(int matrix[MAX_ROWS][MAX_COLS], int rows, int cols); void fillMatrixRandom(int matrix[MAX_ROWS][MAX_COLS], int rows, int cols, int min, int max); void printMatrix(int matrix[MAX_ROWS][MAX_COLS], int rows, int cols); int calculateZoneSum(int matrix[MAX_ROWS][MAX_COLS], int size); void extractSubmatrix3x3(int src[MAX_ROWS][MAX_COLS], int dest[3][3], int start_row, int start_col); int calculateDeterminant3x3(int m[3][3]); #endif
Editor Settings
Theme
Key bindings
Full width
Lines