这是同学推荐的一段不错的生成测试数据的代码。
有了它。。生成测试数据的时候简直感觉自己萌萌哒啊~
给大家共享一下。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX 1000001
int a[MAX];
void main()
{
int i,N;
int k,s=MAX-2,m=MAX-1;
for(i=1;i<MAX;i++) //将随机数可能的取值存入数组
a[i]=i;
scanf("%d",&N); //输入需要生成的随机数个数
FILE* fp; //定义一个文件指针
srand((int)time(0)); // 初始化伪随机数发生器
if((fp=fopen("d:\\randrom.txt","w+"))!=NULL) //打开文件d:\randrom.txt
{
fprintf(fp,"%d\n",N); //写入总数
for(i=1;i<=N;i++) //循环N次
{
k=rand()%s+1; //变量k虽由rand()函数生成,但它只是数组元素的地址;
fprintf(fp,"%d\n",a[k]); //写入随机数
a[k]=a[m]; //将数组最后一个元素存入使用过的元素处
s--; //缩小随机数生成范围
m--; //缩短数组的有效长度
}
printf("生成完毕!!\n");
}
fclose(fp); //关闭文件
}
可以自己进行一些修改以符合自己题目的要求~