Created
January 26, 2019 19:05
-
-
Save nikitalarionov/d06e9a1f2051d2400a95a0d4f23aff29 to your computer and use it in GitHub Desktop.
Rotate array to left by number of positions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// array_rotate.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. | |
// | |
#include "pch.h" | |
#include <iostream> | |
using namespace std; | |
void left(int a[], unsigned N) { | |
// Запишем первый элемент массива во временную переменную | |
int temp = a[0]; | |
for (int i = 0; i < N; i++) { | |
// Сделаем перестановку элементов с первого до последнего | |
a[i] = a[i + 1]; | |
} | |
// Перезапишем последний элемент | |
a[N - 1] = temp; | |
} | |
void rotate(int a[], unsigned size, int shift) { | |
// Если число перестановок больше чем указанных | |
// Разделим сдвиг на размер и получим реальное число перестановок | |
// Например сдвиг 8, размер массива 6 = то реальное число сдвигов 2 (1.33 с округлением вверх) | |
int realShift = shift % size; | |
for (int i = 0; i < realShift; i++) | |
left(a, size); | |
} | |
void logArray(int a[], unsigned size) { | |
for (int i = 0; i < size; i++) { | |
cout << a[i]; | |
} | |
cout << endl; | |
} | |
int main() | |
{ | |
int a[] = { 1, 2, 3, 4, 5, 6 }; | |
int sizeOfA = sizeof(a) / sizeof(*a); // 6 | |
rotate(a, sizeOfA, 8); | |
logArray(a, sizeOfA); | |
return 0; | |
} | |
// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки" | |
// Отладка программы: F5 или меню "Отладка" > "Запустить отладку" | |
// Советы по началу работы | |
// 1. В окне обозревателя решений можно добавлять файлы и управлять ими. | |
// 2. В окне Team Explorer можно подключиться к системе управления версиями. | |
// 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения. | |
// 4. В окне "Список ошибок" можно просматривать ошибки. | |
// 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода. | |
// 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment