C语言 输出一组随机数 控制某几个数出现的频率

[复制链接]
查看11 | 回复3 | 2011-9-1 10:09:21 | 显示全部楼层 |阅读模式
如题。比如说输出1~10之间的随机数20个,而这20个数中,1出现3次,3出现4次,5出现2次。如何实现?
不可以先输出3个1,4个3,2个5,再从2,4,6~10取11是一个数乱序输出

回复

使用道具 举报

千问 | 2011-9-1 10:09:21 | 显示全部楼层
#include#include#includevoid main(){int i,a[20]={0},b[3]={0},d,k=0,num=0;
srand((unsigned)time(NULL));while(1){ d=1+rand()%10; if(d!=1 && d!=3 && d!=5) {
if(a[num]!=1 && a[num]!=3 && a[num]!=5) /* 不能覆盖已经出现的1、3、5 */
{a[num]=d;
} } if(d==1 && b[0]<3)...
回复

使用道具 举报

千问 | 2011-9-1 10:09:21 | 显示全部楼层
先把这20个数放在一个数组里 总可以了。例如 放入 a[20].再开一个数组 b[20], 初始化 为 全 0。计数器 c=0;然后 在 1 到 20 之间 取随机数 r:while(1){如果 (c==20) break;在 0 到 19 之间 取随机数 r;如果 (b[r] == 0) { 输出 a[r], c=c+1; b[...
回复

使用道具 举报

千问 | 2011-9-1 10:09:21 | 显示全部楼层
定义3个变量控制3个数字出现的次数,出现一次自加,每次生成的时候检查这3个变量,假如不符合就重生生成...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行