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

 

今天有个朋友需要用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

 

 

posted on 2009-03-18 18:36  俱正Steven  阅读(1758)  评论(0编辑  收藏  举报

导航