c语言请你设计函数解决需求:对生成10个随机种子为824,数字范围为[0,100]中的元素的数组实现移动指定位置范围的元素。输入指定位置m,输出把第1到第m个元素移动到原数组后端的新数组。
时间: 2024-02-12 13:04:37 浏览: 76
好的,下面是代码实现:
```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 move_array(int arr[], int len, int m) {
// 新数组
int new_arr[N];
// 把第1到第m个元素移动到原数组后端的新数组
for (int i = m; i < len; i++) {
new_arr[i-m] = arr[i];
}
for (int i = 0; i < m; i++) {
new_arr[len-m+i] = arr[i];
}
// 打印新数组
printf("移动后的数组为:");
print_array(new_arr, len);
}
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);
move_array(arr, N, m);
return 0;
}
```
运行结果示例:
```
随机数组为:16 14 75 45 46 70 4 72 91 2
请输入要移动的位置m:4
移动后的数组为:70 4 72 91 2 16 14 75 45 46
```
阅读全文