C语言随机数的实现
来源:互联网 发布:范德堡大学知乎 编辑:程序博客网 时间:2024/05/01 23:25
C语言随机数的实现
此次笔记基于《C语言程序设计--现代方法》。通过一个发牌的程序说明。
此程序负责发一副纸牌。每张纸牌有一个花色(suit)和一个等级(rank)。程序需要用户输入手里应握有几张纸牌。
为了随机抽取纸牌,采用一些C语言的库函数。time函数返回当前的时间,用一个数表示。srand函数初始化C语言的随机数生成器通过把time函数的返回值传递给函数srand可以避免程序在每次运行时发同样的牌。rand函数在每次调用时会产生一个看似随机的数。通过采用%用算符,可以缩放rand函数的返回值,使其落在0~3(表示花色)或者是0~12(表示等级)的范围内。
程序如下:
/********************************************** * deal.c * * Deals a random hand of cards * **********************************************/#include<stdio.h>#include<stdlib.h>#include<stdbool.h> /*C99 only*/#include<time.h>#define NUM_SUITS 4#define NUM_RANKS 13int main(void){ bool in_hand[NUM_SUITS][NUM_RANKS] = {false}; int num_cards, rank, suit; const char rank_code[] = {'2','3','4','5','6','7','8', '9','t','j','q','k','a'}; const char suit_code[] = {'c','d','h','s'}; srand((unsigned) time(NULL)); printf("Enter number of cards in hand: "); scanf("%d",&num_cards); printf("Your hand:"); while (num_cards > 0) { suit = rand() % NUM_SUITS; /*picks a random suit*/ rank = rand() % NUM_RANKS; /*picks a random rank*/ if (!in_hand[suit][rank]) { in_hand[suit][rank] = true; num_cards--; printf(" %c%c", rank_code[rank], suit_code[suit]); } } printf("\n"); system("pause"); return 0;}
- C语言随机数的实现
- c语言实现随机数
- C语言的随机数
- c语言实现的两种获取随机数的算法
- C语言随机数的实现:mingw与glibc
- C语言中生成随机数的另类实现
- C语言随机数的产生
- C语言随机数的总结
- C语言随机数的产生
- C语言随机数的使用
- C语言随机数的产生
- C语言的伪随机数
- C语言生产者与消费者-随机数实现
- C语言之实现随机数产生算法
- C/C++的随机数实现
- oc获取随机数(主要是c语言的随机数)
- 用C语言产生真正的随机数
- 用C语言产生真正的随机数
- Qt自定义事件的实现 .
- HP大中华区总裁孙振耀退休感言
- Java性能优化小技巧
- CloudFoundry之warden使用与原理分析
- C++各种类型转换
- C语言随机数的实现
- qt 之 mainwidget
- 对X264/FFMPEG架构探讨
- Uploadify Version 3.2手册
- 给IT新兵职业发展的15个建议
- 如何给10^7个数据量的磁盘文件排序
- 各种计算机语言的经典书籍
- org.springframework.web.filter.HiddenHttpMethodFilter
- 字符数组的初始化