用C++写移动数组中的元素
时间: 2023-09-30 09:02:53 浏览: 162
数组元素移动
4星 · 用户满意度95%
移动数组中的元素通常指将数组中的元素沿着数组的方向进行位移,可以使用 C 语言中的指针和循环来实现。下面是一个示例代码,将数组 arr 中的前 n 个元素向右移动 k 个位置:
```c
#include <stdio.h>
void moveArray(int arr[], int n, int k) {
int *p = arr;
int tmp[n];
for(int i=0; i<n; i++) {
tmp[i] = *(p+i);
}
for(int i=0; i<n; i++) {
*(p+(i+k)%n) = tmp[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = 5;
int k = 2;
printf("Before move: ");
for(int i=0; i<n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
moveArray(arr, n, k);
printf("After move: ");
for(int i=0; i<n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Before move: 1 2 3 4 5
After move: 4 5 1 2 3
```
在函数 `moveArray` 中,首先定义一个指向数组头部的指针 `p`,然后将数组中的元素复制到一个临时数组 `tmp` 中,最后将 `tmp` 中的元素根据移动的距离 k 按照循环队列的方式重新赋值给数组 arr。
阅读全文