编写一个程序,将长度为n的一维数组各个元素向前移动m个位置,最前面的m个元素变成最后面的m个数c语言
时间: 2023-11-22 17:54:30 浏览: 90
C语言程序设计-输入一维数组的8个元素,并将最大值与最后一个数交换
5星 · 资源好评率100%
以下是一个C语言函数,可以实现将长度为n的一维数组各个元素向前移动m个位置的功能:
```c
void shiftArray(int arr[], int n, int m) {
int temp[m];
// 将前面的m个元素保存到临时数组中
for (int i = 0; i < m; i++) {
temp[i] = arr[i];
}
// 将数组中的元素向前移动m个位置
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];
}
}
```
使用示例:
```c
int arr[] = {1, 2, 3, 4, 5};
int n = 5;
int m = 2;
shiftArray(arr, n, m);
// 移动完成后,arr变成{3, 4, 5, 1, 2}
```
阅读全文