#includeusing namespace std; int main() { void move(int*, int, int); int number[20], m, n, i; cout << "how many number?" << endl; cin >> n; cout << "input " << n << "nubers:" << endl; for ( i = 0; i < n; i++) { cin >> number[i]; } cout << "how many places do you want move?"; cin >> m; move(number, n, m); cout << "now,they are :" << endl; for ( i = 0; i < n; i++) { cout << number[i] << " "; } cout << endl; return 0; } void move(int *array,int n,int m) { int* p, array_end; //将数组最后一位的值赋给array_end array_end = *(array + n - 1); for ( p = array+n-1; p > array; p--) { //将数组的n个元素逐个循环往后移一位,从最后一位开始 *p = *(p - 1); } //将原数组末尾的元素赋给新的数组首元素位置 *array = array_end; //总共移动m次,每移动一次m减1,以此完成n个元素向后移动m位 m--; if (m > 0) move(array, n, m); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)