对于有n个整数的数组,使其前面各数顺序向后移m个位置,让最后m个数变成最前面的m个数
时间: 2024-06-13 19:04:25 浏览: 9
这是一道经典的数组移位问题。对于有n个整数的数组,使其前面各数顺序向后移m个位置,让最后m个数变成最前面的m个数,可以采用以下方法:
1.将数组中后m个数存储到一个临时数组中。
2.将原数组中前n-m个数向后移动m个位置。
3.将临时数组中的m个数复制到原数组的前m个位置。
下面是代码实现:
```
#include <stdio.h>
#define N 20
int main()
{
int a[N] = {1,2,3,4,5,6,7,8,9,10,11,22,33,44,55,66,77,88,99,100};
int m, temp[N];
scanf("%d", &m);
for(int i = 0; i < m; i++){
temp[i] = a[N-m+i];
}
for(int i = N-m-1; i >= 0; i--){
a[i+m] = a[i];
}
for(int i = 0; i < m; i++){
a[i] = temp[i];
}
for(int i = 0; i < N; i++){
printf("%d ", a[i]);
}
return 0;
}
```
相关问题
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数
可以将这个问题分解成两个步骤:
1. 将前面的n-m个数向后移动m个位置
2. 将后面的m个数放到最前面
对于第一步,可以使用一个临时数组来存储前面的n-m个数,然后将这n-m个数向后移动m个位置,最后将临时数组中的数放到数组的前面m个位置。
对于第二步,可以使用两个指针,一个指向原数组的最后一个位置,另一个指向新数组的最后一个位置,将后面m个数依次放到新数组的最前面。
下面是一个示例代码实现:
```python
def move_array(nums, n, m):
# 将前面的n-m个数向后移动m个位置
temp = nums[:n-m]
for i in range(n-m, n):
nums[i-n+m] = nums[i]
nums[:m] = temp
# 将后面的m个数放到最前面
i = n-1
j = n+m-1
while i >= n-m and j >= m:
nums[j] = nums[i]
i -= 1
j -= 1
nums[:m] = nums[n-m:n+m]
return nums
```
这个函数接受三个参数:原数组 `nums`、数组长度 `n` 和向后移动的位置 `m`,返回移动后的数组。例如,对于数组 `[1, 2, 3, 4, 5, 6, 7]`,如果将前面的5个数向后移动2个位置,则调用 `move_array([1, 2, 3, 4, 5, 6, 7], 7, 2)` 将返回 `[6, 7, 1, 2, 3, 4, 5]`。
有N个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数c语言指针
以下是使用C语言指针实现将前面的数顺序向后移m个位置,最后的m个数变成最前面的m个数的方法:
```c
int arr[N];
int *p = arr;
for (int i = 0; i < m; i++) {
arr[i] = arr[N - m + i];
}
for (int i = m; i < N; i++) {
arr[i] *(p + i - m);
}
```
其中,`arr`是一个整型数组,`p`是一个指向整型的指针变量,指向`arr`的第一个元素。首先,使用一个循环将前面的数向后移m个位置,并将最后的m个数赋值给最前面的m个位置。然后,将最后的m个数赋值给最前面的m个位置。
相关推荐
![](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://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)