C++ 程序:分割数组并将第一部分添加到末尾?


在这里我们将了解如何分割一个数组,并在分割后将第一部分添加到末尾。假设数组内容为 {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]; //take the first number
      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 << "Enter split size: ";
   cin >> i;
   splitArray(data, n, i);
   for(int i = 0; i <n;i++){
      cout << data[i] << " ";
   }
}

输出

Enter split size: 4
4 5 6 7 8 9 0 1 2 3

更新日期:2019 年 7 月 30 日

411 次浏览

开启你的 职业生涯

通过完成课程获取认证

开始课程
广告