要求使用指定子函数 void MoveData(int a[],int n,int m)
时间: 2023-12-21 19:04:16 浏览: 63
C语言函数大全 F篇
好的,下面是使用指定子函数 `MoveData` 实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
// 生成随机数
int rand_num(int min, int max) {
return rand() % (max - min + 1) + min;
}
// 打印数组
void print_array(int arr[], int len) {
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
// 移动数组元素
void MoveData(int a[], int n, int m) {
// 新数组
int new_arr[N];
// 把第1到第m个元素移动到原数组后端的新数组
for (int i = m; i < n; i++) {
new_arr[i-m] = a[i];
}
for (int i = 0; i < m; i++) {
new_arr[n-m+i] = a[i];
}
// 把新数组复制回原数组
for (int i = 0; i < n; i++) {
a[i] = new_arr[i];
}
}
int main() {
// 生成随机数组
int arr[N];
srand(824);
for (int i = 0; i < N; i++) {
arr[i] = rand_num(0, 100);
}
printf("随机数组为:");
print_array(arr, N);
// 移动数组元素
int m;
printf("请输入要移动的位置m:");
scanf("%d", &m);
MoveData(arr, N, m);
// 打印新数组
printf("移动后的数组为:");
print_array(arr, N);
return 0;
}
```
运行结果示例:
```
随机数组为:16 14 75 45 46 70 4 72 91 2
请输入要移动的位置m:4
移动后的数组为:70 4 72 91 2 16 14 75 45 46
```
阅读全文