Пожалуйста. Помогите мне написать рекурсивную функцию, которая принимает двухмерный массив целых чисел и количество сдвигов и выполняет круговой сдвиг массива ВНИЗ.
Например:
Дан массив:
4 5 6 7
1 2 4 1
4 3 6 8
Сдвигаем ВНИЗ НА ОДИН (должно быть потом вот так):
4 3 6 8
4 5 6 7
1 2 4 1
ПРОСЬБА, НЕЙРОСЕТЬ НЕ ИСПОЛЬЗОВАТЬ!!!
НЕ КОПИРОВАТЬ НЕРАБОТАЮЩИЕ КОДЫ С++ С ИНТЕРНЕТА!
Читайте внимательно задание. И помогите мне с этим
C/C++
Задание 4 по Теме Функции. Перегрузка Функций. Рекурсия. На языке программирования C++
#include
#include
using namespace std;
void scroll(int** arr, size_t str, int dist)
{
if (dist > str) dist = dist % str;
if (!dist) return;
for (size_t i = str - 1; i > 0; i--) swap(arr[i], arr[i - 1]);
scroll(arr, str, dist - 1);
}
void print(int** arr, size_t str, size_t col)
{
for (size_t i = 0; i < str; i++)
{
for (size_t j = 0; j < col; j++) cout > col;
int** arr = new int* [str];
arr[0] = new int[str * col];
for (size_t i = 1; i < str; i++) arr[i] = arr[0] + i * col;
puts("Enter elements");
for (size_t i = 0; i < str * col; i++) cin >> arr[0][i];
puts("Your arr:");
print(arr, str, col);
puts("Enter dist:");
cin >> dist;
scroll(arr, str, dist);
puts("Your arr:");
print(arr, str, col);
}
#include
#include
void shiftDown(std::vector& matrix, int shifts) {
if (shifts < 0) {
std::cerr
#include
#include
#include
typedef unsigned char byte;
void rotate(int* matrix, int rows, int cols, int shift) {
shift %= rows;
if (shift < 0)
shift += rows;
if (shift) {
void* buffer = malloc(sizeof(int) * cols);
if (buffer) {
memcpy(buffer, matrix + ((rows - 1) * cols), sizeof(int) * cols);
memmove(matrix + cols, matrix, (rows - 1) * cols * sizeof(int));
memcpy(matrix, buffer, sizeof(int) * cols);
free(buffer);
rotate(matrix, rows, cols, shift - 1);
}
}
}
void print(int* matrix, int cols, int rows) {
for (int i = 0; i < rows; i++) {
printf("%i", matrix[i * cols]);
for (int j = 1; j < cols; j++)
printf(", %i", matrix[i*cols+j]);
printf("\n");
}
printf("\n");
}
int matrix[3][3] = {
{0,1,0},
{1,0,1},
{0,1,0},
};
int main() {
print((int*)matrix, 3, 3);
rotate((int*)matrix, 3, 3, -1);
print((int*)matrix, 3, 3);
}

Похожие вопросы
- Что такое #include <iostream>, std using namespace std В языке программирования C++?
- Язык программирования c++
- Нормальный ли язык программирования C для новичка ,что бы в дальнейшем перейти на C# ,C++,И в чем различие между ними?
- Стоит ли выбирать язык программирования c++ или лучше учить java. Требуется ли для этого языка хорошо знать математику?
- Помогите с языком программирования C++
- Написать программу на языке программирования C++
- Задача на языке программирования C#
- Задача на языке программирования C++
- Задача по языку программированию C++
- За сколько вы выучили язык программирования C++?