📌  相关文章
📜  C++程序拆分数组并将第一部分添加到末尾|设置 2(1)

📅  最后修改于: 2023-12-03 15:14:04.670000             🧑  作者: Mango

C++程序拆分数组并将第一部分添加到末尾|设置 2

本文将介绍如何使用C++编程语言编写一个程序,实现将一个数组拆分成两个部分,并将第一部分添加到数组的末尾的功能。该方法可以实现数组的环形位移。

实现思路

本程序的实现思路如下:

  1. 读取待处理数组的长度和数据。
  2. 指定分割点位置,将数组分为两个部分。
  3. 将第一部分添加到数组末尾。
  4. 输出处理后的数组元素。
代码实现

基于上述思路,我们可以使用下面的C++代码来实现:

#include <iostream>
using namespace std;

// 定义数组长度的最大值
const int MAX = 100;

// 实现数组环形位移
void moveArray(int arr[], int len, int pos)
{
   // 检查分割位置是否合法
   if (pos > len) {
      cout << "Error: invalid position." << endl;
      return;
   }

   // 创建一个临时数组
   int tmp[MAX];

   // 首先将待处理部分拷贝到临时数组中
   for (int i = 0; i < pos; i++) {
      tmp[i] = arr[i];
   }

   // 将后半部分数据移到数组开头
   for (int i = 0; i < len - pos; i++) {
      arr[i] = arr[i+pos];
   }

   // 将临时数组中的数据添加到数组末尾
   for (int i = 0; i < pos; i++) {
      arr[len-pos+i] = tmp[i];
   }
}

int main()
{
   int arr[MAX], len, pos;

   // 读取待处理数组的长度和数据
   cout << "Enter the length of the array: ";
   cin >> len;

   cout << "Enter the array elements: ";
   for (int i = 0; i < len; i++) {
      cin >> arr[i];
   }

   // 读取分割位置
   cout << "Enter the split position: ";
   cin >> pos;

   // 进行数组位移操作
   moveArray(arr, len, pos);

   // 输出结果
   cout << "The result is: ";
   for (int i = 0; i < len; i++) {
      cout << arr[i] << " ";
   }
   cout << endl;

   return 0;
}
测试结果

以下是一个示例运行结果:

Enter the length of the array: 5
Enter the array elements: 11 22 33 44 55
Enter the split position: 3
The result is: 44 55 11 22 33

我们输入了一个长度为5的数组,包含元素11、22、33、44和55。我们将这个数组以位置3为分割点进行了位移操作,然后将结果打印出来,我们可以看到,位移后的数组元素为44、55、11、22和33,符合我们的预期结果。