用C语言编写一程序,将长度为n的一维数组各个元素向前移动m个位置,最前面的m个元素变成最后面的m个数。
时间: 2023-07-16 11:15:13 浏览: 84
以下是一段使用C语言实现题目要求的程序:
```c
#include <stdio.h>
void rotateArray(int arr[], int n, int m) {
int i, j, temp;
for(i = 0; i < m; i++) {
temp = arr[0];
for(j = 0; j < n-1; j++) {
arr[j] = arr[j+1];
}
arr[n-1] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7};
int n = sizeof(arr)/sizeof(arr[0]);
int m = 3;
printf("Original Array: ");
for(int i=0;i<n;i++){
printf("%d ", arr[i]);
}
rotateArray(arr, n, m);
printf("\nRotated Array: ");
for(int i=0;i<n;i++){
printf("%d ", arr[i]);
}
return 0;
}
```
程序中,我们定义了一个`rotateArray`函数来实现数组的旋转操作,该函数接收三个参数:数组`arr`、数组长度`n`、向前移动的位置数`m`。在函数中,我们使用两个循环来实现数组的旋转,外层循环控制旋转次数,内层循环则将数组元素向前移动一个位置。最后,我们在`main`函数中调用`rotateArray`函数来实现数组的旋转,并输出旋转后的数组。
阅读全文