编写一程序,将长度为n的一维数组各个元素向前移动m个位置,最前面的m个元素变成最后面的m个数。 要求:数据处理通过函数实现,数据输入输出在主函数中进行。
时间: 2023-11-22 10:53:31 浏览: 88
以下是一个简单的实现:
```c
#include <stdio.h>
void rotate(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];
}
}
int main(){
int n = 7, m = 3;
int arr[n] = {1, 2, 3, 4, 5, 6, 7};
printf("Original array: ");
for(int i=0; i<n; i++){
printf("%d ", arr[i]);
}
printf("\n");
rotate(arr, n, m);
printf("Rotated array: ");
for(int i=0; i<n; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出:
```
Original array: 1 2 3 4 5 6 7
Rotated array: 4 5 6 7 1 2 3
```
这里我们使用了三个循环,第一个循环将前m个元素复制到一个临时数组中,第二个循环将剩余的n-m个元素向前移动m个位置,第三个循环将临时数组中的元素放回原数组的最后m个位置。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)