有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
时间: 2023-04-29 14:02:12 浏览: 206
C语言程序设计100个经典例子-含答案.pdf
可以使用循环队列来实现这个功能。首先将前面n-m个数依次入队,然后将后面m个数依次入队。接着将队列头部的n个数依次出队并输出即可。
以下是示例代码:
```python
def shift_array(arr, m):
n = len(arr)
queue = []
for i in range(n-m):
queue.append(arr[i])
for i in range(n-m, n):
queue.append(arr[i])
for i in range(n):
arr[i] = queue[i]
return arr
# 测试代码
arr = [1, 2, 3, 4, 5, 6, 7]
m = 3
arr = shift_array(arr, m)
print(arr) # 输出 [5, 6, 7, 1, 2, 3, 4]
```
在上面的代码中,shift_array函数接受一个整数数组arr和一个整数m作为参数,返回调整后的数组。首先创建一个空队列queue,然后将前面n-m个数依次入队,再将后面m个数依次入队。接着将队列中的n个数依次出队并存入原数组arr中,最后返回arr即可。
在测试代码中,我们输入一个长度为7的数组arr和m=3,调用shift_array函数后输出调整后的数组。
阅读全文