您的位置:首页 > 编程语言 > C语言/C++

C语言实现不重复随机序列(源码)

2009-03-18 18:36 225 查看
今天有个朋友需要用C语言实现显示0-100的随机序列,并且要大于50的显示1,小于50的显示0。

俺觉得无非就是rand()函数的使用呗,于是抽空写一下实现,本机测试无误。需要的朋友可以直接拷贝运行。

那个向我提问的朋友也可以看看,并提出下一步设计。俺也给出了详细的注释。程序很短,没有考虑性能,仅以实现

为目的。好久没发贴了,估计近期都会少发帖,因为手头的两个网站要快些做。

#include <stdlib.h> //标准工具库,要用到其中的rand()

#include <stdio.h>

#include<conio.h>

#include <time.h> //时间库,要用到里面的时间来做随机数的种子

int main(){

//循环变量

int i;

int j;

int t;

//随机变量

int k;

//数组初始化

int sy[100]={};

for(t=0;t<=100;t++){

sy[t]=t;

}

//获得随机种子

srand(time(NULL));

printf("将0-100的数随机排列,并且大于50的数显示1,小于50的数显示0的程序\n\n");

for(i=0; i<100; i++){

k=rand()%(100-i);

if(sy[k]>50)

printf("%d\n",1);

else

printf("%d\n",0);

//数组中随机位置后的所有数整体前移一位,覆盖该随机数,防止数列重复

for(j=k;j<100;j++)

sy[j]=sy[j+1];

}

getch();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: