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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值