Advertisement
Guest User

F. Функция «Циклический сдвиг»

a guest
Apr 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. void print_array(int (*Array), int size) {
  6.   for (int i = 0; i < size; i++) {
  7.     cout << Array[i] << " ";
  8.   }
  9. }
  10.  
  11. int read_array(int (*Array)) {
  12.   int size;
  13.   cin >> size;
  14.   for (int i = 0; i < size; i++) {
  15.     cin >> Array[i];
  16.   }
  17.   return size;
  18. }
  19.  
  20. void shift(int (*Array), int size, int k) {
  21.   if (k > 0) {
  22.     for (int i = 0; i < k; i++) {
  23.       int last;
  24.       last = Array[size - 1];
  25.       for(int j = (size - 1); j > 0; j--) {
  26.         Array[j] = Array[j - 1];
  27.       }
  28.       Array[0] = last;
  29.     }
  30.   } else if (k < 0) {
  31.     k = abs(k);
  32.     for (int i = 0; i < k; i++) {
  33.       int first;
  34.       first = Array[0];
  35.       for (int j = 0; j < (size - 1); j++) {
  36.         Array[j] = Array[j + 1];
  37.       }
  38.       Array[size - 1] = first;
  39.     }
  40.   }
  41. }
  42.  
  43. int main() {
  44.   int size, array[100], k;
  45.   size = read_array(array);
  46.   cin >> k;
  47.   shift(array, size, k);
  48.   print_array(array, size);
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement