Блог для маленьких школьников и их родителей
ШколаЛа

C++ 1. Створіть двовимірний масив. Заповніть його випадковими числами і покажіть на екран. Користувач…

Автор:
Предмет: Информатика
Уровень: студенческий

C++

1. Створіть двовимірний масив. Заповніть його

випадковими числами і покажіть на екран. Користувач

вибирає кількість зрушень і положення (вліво, вправо,

вгору, вниз). Виконати зрушення масиву і показати на

екран отриманий результат. Зрушення циклічне.

Тиждень 10

1

Наприклад, якщо ми маємо такий масив.

1 2 0 4 5 3

4 5 3 9 0 1

і користувач вибрав зрушення на 2 розряди вправо, то

ми отримаємо:

5 3 1 2 0 4

0 1 4 5 3 9.

Ответов к вопросу: 1
  • eryslanovasofia
    16.10.2024 | 00:00

    Ответ:
    #include <iostream>
    #include <cstdlib>
    #include <ctime>

    using namespace std;

    const int ROWS = 2;
    const int COLS = 6;

    void fillArray(int arr[][COLS], int rows, int cols) {
       srand(time(NULL));
       for (int i = 0; i < rows; i++) {
           for (int j = 0; j < cols; j++) {
               arr[i][j] = rand() % 10;
               cout << arr[i][j] << » «;
           }
           cout << endl;
       }
    }

    void shiftArray(int arr[][COLS], int rows, int cols, int shift, string direction) {
       int tempArr[ROWS][COLS];
       if (direction == «left») {
           for (int i = 0; i < rows; i++) {
               for (int j = 0; j < cols; j++) {
                   tempArr[i][(j — shift + cols) % cols] = arr[i][j];
               }
           }
       } else if (direction == «right») {
           for (int i = 0; i < rows; i++) {
               for (int j = 0; j < cols; j++) {
                   tempArr[i][(j + shift) % cols] = arr[i][j];
               }
           }
       } else if (direction == «up») {
           for (int i = 0; i < rows; i++) {
               for (int j = 0; j < cols; j++) {
                   tempArr[(i — shift + rows) % rows][j] = arr[i][j];
               }
           }
       } else if (direction == «down») {
           for (int i = 0; i < rows; i++) {
               for (int j = 0; j < cols; j++) {
                   tempArr[(i + shift) % rows][j] = arr[i][j];
               }
           }
       }
       for (int i = 0; i < rows; i++) {
           for (int j = 0; j < cols; j++) {
               arr[i][j] = tempArr[i][j];
           }
       }
       cout << endl << «Array after » << shift << » shift(s) » << direction << «:» << endl;
       for (int i = 0; i < rows; i++) {
           for (int j = 0; j < cols; j++) {
               cout << arr[i][j] << » «;
           }
           cout << endl;
       }
    }

    int main() {
       int arr[ROWS][COLS];
       fillArray(arr, ROWS, COLS);
       int shift;
       string direction;
       cout << «Enter shift value: «;
       cin >> shift;
       cout << «Enter shift direction (left, right, up, down): «;
       cin >> direction;
       shiftArray(arr, ROWS, COLS, shift, direction);
       return 0;
    }

Ответить на вопрос:
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
Нажимая на кнопку я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.