本文共 909 字,大约阅读时间需要 3 分钟。
数组元素循环左(右)移K位...
#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;void reverse(char *a, int left, int right){ while(left <= right) swap(a[left++], a[right--]);}void shiftRight(char *a, int k){ assert(a != NULL); int size = strlen(a) - 1; reverse(a, 0, size - k); reverse(a, size - k +1, size); reverse(a, 0, size);}void shiftLeft(char *a, int k){ assert(a != NULL); int size = strlen(a) - 1; reverse(a, 0, k); reverse(a, k + 1, size); reverse(a, 0, size);}int main(int argc, char *argv[]){ char a[] = {"0123456789"}; int k; cin >> k; cout << "source string is: " << a << endl; shiftRight(a, k); cout << "shift right: " << k << "bit result: " << a << endl; shiftLeft(a, k); cout << "shift left: " << k << "bit result: " << a << endl; system("PAUSE"); return EXIT_SUCCESS;}
<编程珠玑>
转载地址:http://jjkqb.baihongyu.com/