Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.96 KB | None | 0 0
  1. void arrayShift(int array[], int size, int shift) {
  2.     int tShift;
  3.    
  4.     shift %= size;
  5.    
  6.     if ( shift < 0 ) {
  7.         shift += size;
  8.     }
  9.    
  10.     tShift = size - shift;
  11.    
  12.     if ( tShift > shift ) {
  13.         int arraybuffer[shift];
  14.        
  15.         for ( int i = 0, j = tShift; i < shift; i++, j++ ) {
  16.             arraybuffer[i] = array[j];
  17.         }
  18.         for ( int i = size - 1, j = i - shift; i >= shift; i--, j-- ) {
  19.             array[i] = array[j];
  20.         }
  21.         for ( int i = 0; i < shift; i++ ) {
  22.             array[i] = arraybuffer[i];
  23.         }
  24.     } else {
  25.         int arraybuffer[tShift];
  26.        
  27.         for ( int i = 0; i < tShift; i++ ) {
  28.             arraybuffer[i] = array[i];
  29.         }
  30.         for ( int i = 0, j = tShift; i < shift; i++, j++ ) {
  31.             array[i] = array[j];
  32.         }
  33.         for ( int i = 0, j = shift; j < size; i++, j++ ) {
  34.             array[j] = arraybuffer[i];
  35.         }
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement