C++ 程序如何拆分数组并将第一部分添加到末尾?
server side programmingprogrammingc++
这里我们将看到如何拆分数组,并在拆分后在末尾位置添加第一部分。假设数组内容为 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。我们想将此内容分为两部分。第一部分从索引 0 到 3(拆分大小为 4),第二部分是其余部分。在末尾添加第一部分后,数组元素将如下所示 {4, 5, 6, 7, 8, 9, 0, 1, 2, 3}。为了解决这个问题,我们将遵循此算法。
算法
splitArray(arr, n, k)
begin for i := 0 to k, do x := arr[0] for j := 0 to n-2, do arr[j] := arr[j+1] done arr[n-1] := x done end
示例
#include<iostream> using namespace std; void splitArray(int arr[], int n, int k){ for(int i = 0; i<k; i++){ int x = arr[0]; //取第一个数字 for(int j = 0; j<= n-2; j++){ arr[j] = arr[j+1]; } arr[n-1] = x; } } main() { int data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int n = sizeof(data)/sizeof(data[0]); int i; cout << "输入分割大小:"; cin >> i; splitArray(data, n, i); for(int i = 0; i <n;i++){ cout << data[i] << " "; } }
输出
输入分割大小:4 4 5 6 7 8 9 0 1 2 3