ГАВАЛЯН 515-і lab5_3
/*
* @file lab5_3.cpp
* @author Гавалян Д.Є, гр. 515i
* @date 8 травня 2025
* @brief Лабораторна робота № 5, варіант 19
*
* Застосування вказiвникiв. Завдання 3
*/
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include "module.h"
int main() {
setlocale(LC_ALL, "Ukr");
srand((unsigned int)time(NULL));
int matrix[SIZE][SIZE];
int choice;
// Запит користувача про спосіб заповнення матриці
printf("Виберiть спосiб заповнення матрицi:\n");
printf("1 - введення з клавiатури\n");
printf("2 - автоматичне заповнення (rand)\n");
printf("Ваш вибiр: ");
scanf("%d", &choice);
// Використовую switch для обробки вибору користувача
switch (choice) {
case 1:
// Ручне введення елементiв матрицi
printf("Введiть елементи матрицi розмiром %dx%d:\n", SIZE, SIZE);
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
printf("Елемент [%d][%d]: ", i, j);
scanf("%d", &matrix[i][j]);
}
}
break;
case 2:
// Автоматичне заповнення матрицi випадковими числами
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
matrix[i][j] = MIN_RAND + rand() % (MAX_RAND - MIN_RAND + 1);
}
}
printf("Матриця заповнена випадковими числами.\n");
break;
default:
// Якщо користувач ввiв невiрне значення
printf("Невiрний вибiр: Такої функцiї не iснує!\n");
return 1;
}
// Виводимо початкову матрицю на екран
printf("\nПочаткова матриця:\n");
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
printf("%4d ", matrix[i][j]);
}
printf("\n");
}
// Запит на кількість позицій для зсуву
int k;
printf("\nВведiть кiлькiсть позицiй для зсуву: ");
scanf("%d", &k);
// Викликаємо функцію зсуву
matrix_shift_bottom(&matrix[0][0], SIZE, k);
// Виводимо змінену матрицю на екран
printf("\nМатриця пiсля зсуву на %d позицiй вниз:\n", k);
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
printf("%4d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
INFO