如何用C语言产生10000个不重复的随机整数?并且把它写入到一个文本文件中作为其他函数测试用的数据。

最好注释一下思想哦!... 最好注释一下思想哦! 展开
 我来答
burncom
2012-11-29
知道答主
回答量:17
采纳率:0%
帮助的人:5.1万
展开全部
把产生的数放进数组里面,然后写入文件就好。可以使用C语言的random函数
百度网友346db4d
2012-11-29 · 超过28用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:68.1万
展开全部
用快速跳蚤算法吧,可以获得不同随机数,你这数没有范围的话就默认是RAND_MAX了,算法思想是:
For i=0 to RAND_MAX
a(i)=i
Next
For i=0 to (x-1)
r=rand()
Swap a(i),a(r)
Next
For i=1 to x
b(i)=a(i-1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xxf_cz
2012-11-29 · TA获得超过144个赞
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:125万
展开全部
先说思想:
一、用一个数组a[10000]保存结果。
二、循环10000次,每次产生第i个数x,(i从0到9999),按顺序插入在a[0..i-1]中适当位置。若已存在相等的数,则重新生成一个数再插入。
(提示:用二分法搜索a[0..i-1],可得插入位置k,该位置上的数a[k]若等于x,则表明已存在;若不等,则可插入:把a[k..i-1]逐个右移一个位置,然后x放入a[k]。)
三、完毕。
追问

这样的话,待会写入程序的数据不是变成了有序的了吗?你看看我这样对不对(部分代码哦)

追答
最后在a[]中得到的数列确实是有序的。
可以再弄个数组b[10000],b[i]就直接放第i次产生的数,不排序。
输出的时候,用b[]。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式