Quick actions

cmd+k|ctrl+k

Navigation

Languages

ГАВАЛЯН 515-і lab5_3

Snippet info

Language

C

Visibility

public

Author

d.y.havalian

Created

2025-05-08T16:59:01.370563Z

Updated

2025-05-08T16:59:01.370563Z

/*
* @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