c语言:有n个整数,使得前面各数顺序向后移动m个位置,移出的数再从开头移入;编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个数。 编写相应程序。
时间: 2024-02-21 17:02:08 浏览: 89
以下是C语言的实现代码:
```c
#include <stdio.h>
void move(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, m;
scanf("%d%d", &n, &m);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
move(arr, n, m);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该函数的实现思路如下:
1. 定义一个长度为m的临时数组temp,用于存储需要移动的前m个数;
2. 将原数组中第m个数到第n个数依次向前移动m个位置;
3. 将临时数组中的m个数依次移动到原数组的末尾。
在主函数中,首先输入n和m,然后输入n个整数,调用move函数进行移位操作,最后输出调整后的n个数。
阅读全文