C语言 编写一程序,将长度为n的一位数组各个元素向前移动m个位置,最前面的m个元素变成最后的m个数。要求数据处理用函数实现 数据的输入和输出在主函数中进行。
时间: 2023-11-22 10:53:53 浏览: 118
以下是实现要求的C语言程序:
```c
#include <stdio.h>
void shiftArray(int arr[], int n, int m) {
int temp[m];
// 保存前m个元素
for (int i = 0; i < m; i++) {
temp[i] = arr[i];
}
// 将数组后面的元素向前移动m个位置
for (int i = m; i < n; i++) {
arr[i-m] = arr[i];
}
// 将保存的前m个元素放到数组的最后m个位置
for (int i = n-m; i < n; i++) {
arr[i] = temp[i-n+m];
}
}
int main() {
int n, m;
printf("请输入数组长度n和向前移动的位置m:");
scanf("%d%d", &n, &m);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
shiftArray(arr, n, m);
printf("移动后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在主函数中,先读取数组长度n和向前移动的位置m,然后读取n个整数存入数组中。接着调用 `shiftArray()` 函数进行数组元素的移动,最后输出移动后的数组。函数 `shiftArray()` 中,首先保存前m个元素到一个临时数组中,然后将数组后面的元素向前移动m个位置,最后将保存的前m个元素放到数组的最后m个位置。
阅读全文
相关推荐


















