编写一程序,将长度为n的一维数组各个元素向前移动m个位置,最前面的m个元素变成最后面的m个数。例,原数组为1 2 3 4 5 6 7 8 9 10,向前移动3个位置为4 5 6 7 8 9 10 1 2 3。 要求:数据处理通过函数实现,数据输入输出在主函数中进行。
时间: 2023-11-22 11:53:30 浏览: 55
python 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(示例)
可以按照以下步骤实现:
1. 编写一个函数,接受一个一维数组和要向前移动的位置m作为参数
2. 将前m个元素保存到一个临时数组中
3. 将原数组中从第m+1个元素开始的所有元素向前移动m个位置
4. 将临时数组中的元素放回原数组的末尾m个位置
下面是实现代码:
```c
#include <stdio.h>
void moveArray(int arr[], int n, int m);
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[0]);
int m = 3;
moveArray(arr, n, m);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void moveArray(int arr[], int n, int m)
{
int temp[m];
for (int i = 0; i < m; i++) {
temp[i] = arr[i];
}
for (int i = m; i < n; i++) {
arr[i - m] = arr[i];
}
for (int i = 0; i < m; i++) {
arr[n - m + i] = temp[i];
}
}
```
输出结果为:
```
4 5 6 7 8 9 10 1 2 3
```
阅读全文