Тема: Допоможіть з сортуванням двовимірних масивів на мові С++.
⦁ Створити двовимірний масив. Заповнити його випадковими числами в діапазоні від 0 до 9 включно. Дати користувачеві можливість ввести кількість рядків і колонок, скільки він хоче побачити. Показати масив на екран. Користувач вибирає кількість зсувів і положення (вліво, вправо, вгору, вниз). Виконати зсув масиву і показати на екран отриманий результат. Зсув циклічний.
Наприклад, якщо ми маємо наступний масив:
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
Організувати перевірку на:
⦁ користувач не може ввести більшу кількість рядків і колонок (які він хоче побачити), ніж загальна кількість рядків і колонок в масиві.
⦁ користувач може зробити вибір в діапазоні від 0 до 4 включно:
⦁ Вихід.
⦁ Зсув вліво.
⦁ Зсув вправо.
⦁ Зсув догори.
⦁ Зсув донизу.
⦁ при виборі зсуву вліво або вправо, користувач не може ввести кількість зсувів більше, ніж кількість колонок масиву;
⦁ при виборі зсуву догори або донизу, користувач не може ввести кількість зсувів більше, ніж кількість рядків масиву.
ВАЖЛИВО(зараз мені потрібно зсув вліво, ось мій код 1 рядок неправильно сортує а дальше все нормально)
#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;
void main() {
int rows, cols, a = 0, cho, shift, tmp, j1 = 0;
const int m = 100, n = 100, num = 10;
int ar[m][n], ar1[num];
cout << "Enter rows:";
cin >> rows;
cout << "Enter cols:";
cin >> cols;
srand(time(0));
for (int i = 0; i < num; i++) {
ar1[i] = a;
a++;
}
a = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
ar[i][j] = rand() % num;
a = ar[i][j];
ar[i][j] = ar1[a];
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << setw(5) << ar[i][j];
}
cout << "\n";
}
cout << "0 - exit \n1 - shift left \n2 - shift right \n3 - shift up \n4 - shift down \n";
cin >> cho;
for (;cho > 0 && cho <= 4;) {
if (cho == 1) {
cout << "shift:";
cin >> shift;
for (int a = 0; a < rows; a++) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (a > 0) {
j1++;
}
if (j >= 0 && j < shift) {
for (int j = j1; j < cols - 1; j++) {
if (j1 == 0) {
tmp = ar[i][j];
ar[i][j] = ar[i][j + 1];
ar[i][j + 1] = tmp;
}
if (j1 > 0) {
tmp = ar[i][j];
ar[i][j] = ar[i][j + 1];
ar[i][j + 1] = tmp;
}
}
}
}
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << setw(5) << ar[i][j];
}
cout << "\n";
}
cout << "0 - exit \n1 - shift left \n2 - shift right \n3 - shift up \n4 - shift down \n";
cin >> cho;
}
}
system("pause");
}