用C++自行产生10000个0到9999之间的随机数,按照产生的顺序依次把它们存放到一个数据文件中。从已经产生的数据文件中依次取出前n个随机数,并依次插入到一个有序顺序表中,插入完成后输出顺序表的全部元素。
时间: 2023-06-07 14:12:17 浏览: 153
你可以使用C语言中的rand函数来产生随机数,再使用文件操作函数将随机数依次存入文件中。具体实现代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX 10000 // 随机数个数上限
#define FILENAME "random.txt" // 存放随机数的文件名
// 生成随机数
int generateRandom()
{
return rand() % 10000;
}
// 将随机数存入文件
void saveRandom(int num)
{
FILE *fp;
fp = fopen(FILENAME, "a");
fprintf(fp, "%d ", num);
fclose(fp);
}
// 读取文件中的随机数,插入到顺序表中
void insertToSeqList(int n)
{
int i, num, j, temp;
int a[MAX]; // 顺序表数组
FILE *fp;
fp = fopen(FILENAME, "r");
for (i = 0; i < n; i++) {
fscanf(fp, "%d", &num);
a[i] = num;
}
fclose(fp);
// 插入排序
for (i = 1; i < n; i++) {
temp = a[i];
j = i - 1;
while (j >= 0 && a[j] > temp) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
// 输出排序后的顺序表
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
}
int main()
{
int i, n;
printf("请输入要插入的随机数个数 n:");
scanf("%d", &n);
// 产生随机数并存入文件
for (i = 0; i < MAX; i++) {
int num = generateRandom();
saveRandom(num);
}
// 读取文件并插入到顺序表
insertToSeqList(n);
return 0;
}
```
运行程序后,输入要插入的随机数个数n,程序会依次生成10000个随机数,并将它们存入文件中;再将文件中前n个随机数读取出来,插入到顺序表中,并输出排好序的顺序表元素。
阅读全文