用C语言写一个程序:【问题描述】请你设计函数解决需求:对生成10个随机种子为824,数字范围为[0,100]中的元素的数组实现移动指定位置范围的元素。输入指定位置m,输出把第1到第m个元素移动到原数组后端的新数组。 例如:原数组:1 2 3 4 5 6 7 8 9 10,输入3,先输出原数组,再输出移动后数组,元素之间用1个空格隔开 【样例输入】 3 【样例输出】 2 78 1 8 43 57 52 54 9 69 8 43 57 52 54 9 69 2 78 1 【编程要求】使用指定子函数 void MoveData(int a[],int n,int m) 【样例输出说明】 第一行是随机种子为824生成的原始数组 第二行是移动开头的3个元素后的最终数组
时间: 2024-02-12 08:03:37 浏览: 53
以下是实现该程序的代码,你可以参考一下:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void MoveData(int a[], int n, int m) {
int i, j;
int temp;
// 把第1到第m个元素移动到数组后端
for (i = 0; i < m; i++) {
temp = a[i];
for (j = i; j < n - 1; j++) {
a[j] = a[j + 1];
}
a[n - 1] = temp;
}
}
int main() {
int a[10];
int i, m;
srand(824); // 设定随机种子为824
for (i = 0; i < 10; i++) {
a[i] = rand() % 101; // 生成随机数
printf("%d ", a[i]); // 输出原始数组
}
printf("\n");
scanf("%d", &m); // 输入指定位置m
MoveData(a, 10, m); // 移动元素
for (i = 0; i < 10; i++) {
printf("%d ", a[i]); // 输出移动后的数组
}
printf("\n");
return 0;
}
```
该程序中,我们定义了一个名为 `MoveData` 的函数来实现移动指定位置范围的元素。在 `main` 函数中,我们先将随机数数组打印出来,然后输入指定位置 `m`,最后调用 `MoveData` 函数来移动元素。移动完成后,我们再次打印修改后的数组。
阅读全文