fork(1) download
  1. // shift.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. //#include "stdafx.h"
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8. void reverse(char *arr, int s, int e)
  9. {
  10. char *start = arr + s;
  11. char *end = arr + e - 1;
  12.  
  13. while (start < end)
  14. {
  15. char c = *start;
  16. *start = *end;
  17. *end = c;
  18.  
  19. start++;
  20. end--;
  21. }
  22. }
  23.  
  24. //n - размерность массива
  25. //m - на сколько сдвинуть
  26. void shift(char *arr, int n, int m)
  27. {
  28. reverse(arr, 0, m);
  29. reverse(arr, m, n);
  30. reverse(arr, 0, n);
  31. }
  32.  
  33. int main()
  34. {
  35. char arr[32];
  36.  
  37. strcpy(arr, "1234567890");
  38.  
  39. for (size_t m = 0; m <= strlen(arr); m++, strcpy(arr, "1234567890"))
  40. {
  41. shift(arr, strlen(arr), m);
  42. printf("%s\n", arr);
  43. }
  44.  
  45. return 0;
  46. }
  47.  
  48.  
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
1234567890
2345678901
3456789012
4567890123
5678901234
6789012345
7890123456
8901234567
9012345678
0123456789
1234567890