Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2092991
  • 博文数量: 454
  • 博客积分: 10921
  • 博客等级: 上将
  • 技术积分: 5396
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-15 15:20
个人简介

伪IT男

文章分类

全部博文(454)

文章存档

2016年(2)

2013年(6)

2012年(17)

2011年(29)

2010年(24)

2009年(54)

2008年(53)

2007年(202)

2006年(67)

分类: C/C++

2006-11-29 22:28:37

需要的头文件:<stdlib.h>,

库函数:srand;rand;time

方法:1.首先设置种子srand(unsigned)time(NULL));使用当前时间作为种子是多数人的习惯做法.
         2.产生随机数:rand()可以产生一个随机数;范围在0~RAND_MAX(32767)之间;如果要产生一个[min,max]之间的数,可以这样:rand()%(max) + min;

例子:产生10个[0,100)之间的随机整数:
#i nclude
#i nclude

#define ARRAY_SIZE 10

int adwSortArray[ARRAY_SIZE];

void init_sortarray()
{
 int wLoop;
 printf("Before sort:\n");
 for(wLoop = 0; wLoop < ARRAY_SIZE; wLoop++)
 {
  srand((unsigned)time(NULL)+wLoop);
  adwSortArray[wLoop] = rand()%100;
  printf("%d\t",adwSortArray[wLoop]);  
 }
 printf("\n");
 return;
}

注意,上面的例子中的种子是用时间加上循环变量构成的,如果只用时间的话,由于程序执行十分快,而时钟又不是非常精确,这有可能导致每次循环中的种子时间是一样的,产生出的随机数也是一样的.

阅读(4135) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~