c语言随机数生成函数和时间函数

c语言随机数生成函数和时间函数

c语言是编程常用的语言之一。c语言随机数生成函数和时间函数是如何生成的呢?下面是整理的c语言随机数生成函数和时间函数,仅供参考,希望能够帮助到大家。

一 随机数生成函数(rand,srand)

1)首先,随机数在stdlib.h定义了一个RAND_MAX的宏#define RAND_MAX 0x7fff,也就是不调用srand,只进行rand的话,返回一个[0,32767]的数(闭区间)。

2)随机数种子

void srand(unsigned seed);

如果在rand()前没有调用它,会自动调用一次srand(1)一次。但seed就成了定值,每次运行程序时,产生的随机数都会相同(这个值在[seed,0x32767]之间)。

例如:

#include

#include

int main()

{

int i,j;

i = rand();

j = rand();

printf("%d %d ",i,j);

return 0;

}

这个程序每次结果都是:14 18767

所以一般用一个变量作为seed,一般用到目前为止流逝的时间。

即srand((unsigned int)time(NULL));

3)随机数范围

rand()返回一个0~RAND_MAX的随机数,一般这个不是你想得到的数据范围,需要进行调整,比较常用的是'%'和'/'操作,如果需要一个0~100的'随机数那么就rand()0好了,很容易理解。如果你需要一个浮点数,可以考虑用除法,注意运算时的数据转换操作,rand()返回的是整数,RAND_MAX也是整数,如果你想得到一个0到1的浮点数,你这样写rand()/RAND_MAX你就大错特错了,这样的结果是0,原因仔细想想也很简答,基本的C语言运算数据类型提升问题,小数部分的尾巴取整的时候舍掉了,解决方法也很简单rand()/(RAND_MAX-0.0),一个产生指定范围随机数的函数大概是这样的:

srand((unsigned int)time(0));

double randval(double low, double high)

{

double val;

val = ((double)(rand()/(RAND_MAX-0.0))*(high - low)) + low;

return(val);

}

c语言中的时间函数:

#include

time_t time(time_t *t);

返回:成功饭后1970年1月1日到现在的所经历的秒数,若t为非空指针,此函数也将返回值存放在t所指向的内存中,失败返回(time_t -1)值,错误在errno中。

例如:

#include

#include

int main()

{

int seconds = time(NULL);

printf("%d ",seconds);

return 0;

}

这个返回的是秒数而不是正常日期,所以有下面的函数。

#include

char* ctime(const time_t *timep);

返回值:返回正常日期格式的字符串。

这个函数是将timep中存放的time_t类型的变量转换成真实世界的使用的日期表达,然后以字符串形式返回,例如::Wed Jun 30 21:48:09 1999

#include

#include

#include

int main()

{

time_t tm;

tm = time(0);

char *s;

s = ctime(&tm);

printf("%s ",s);

}

拓展:C语言基本算法

1.交换(两量交换借助第三者)

例1、任意读入两个整数,将二者的值交换后输出。

main()

{int a,b,t;

scanf("%d%d",&a,&b);

printf("%d,%d ",a,b);

t=a; a=b; b=t;

printf("%d,%d ",a,b);}

【解析】程序中加粗部分为算法的核心,如同交换两个杯子里的饮料,必须借助第三个空杯子。

假设输入的值分别为3、7,则第一行输出为3,7;第二行输出为7,3。

其中t为中间变量,起到“空杯子”的作用。

注意:三句赋值语句赋值号左右的各量之间的关系!

【应用】

例2、任意读入三个整数,然后按从小到大的顺序输出。

main()

{int a,b,c,t;

scanf("%d%d%d",&a,&b,&c);

if(a>b){ t=a; a=b; b=t; }

if(a>c){ t=a; a=c; c=t; }

if(b>c) { t=b; b=c; c=t; }

printf("%d,%d,%d ",a,b,c);}

2.累加

累加算法的要领是形如“s=s+A”的累加式,此式必须出现在循环中才能被反复执行,从而实现累加功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为0。

例1、求1+2+3+……+100的和。

main()

{int i,s;

s=0; i=1;

while(i<=100)

{s=s+i;

i=i+1;

}

printf("1+2+3+...+100=%d ",s);}

【解析】程序中加粗部分为累加式的典型形式,赋值号左右都出现的变量称为累加器,其中“i = i + 1”为特殊的累加式,每次累加的值为1,这样的累加器又称为计数器。

3.累乘

累乘算法的要领是形如“s=s*A”的累乘式,此式必须出现在循环中才能被反复执行,从而实现累乘功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为1。

例1、求10!

[分析]10!=1×2×3×……×10

main()

{int i; long c;

c=1; i=1;

while(i<=10)

{c=c*i;

i=i+1;

}

printf("1*2*3*...*10=%ld ",c);}

转载请注明出处学文网 » c语言随机数生成函数和时间函数

学习

三国演义的故事通用

阅读(22)

本文为您介绍三国演义的故事通用,内容包括三国演义的故事儿童版,三国演义的故事完整版,三国演义的故事大全收听。一、三国演义的创作背景

学习

中国古代围棋十诀

阅读(21)

本文为您介绍中国古代围棋十诀,内容包括围棋十诀完整讲解,儿童围棋十诀讲解,围棋十诀作文解析。围棋是起源于中国的一种竞技游戏,但是围棋现在已经在其他国家也已经普及开来,但是我们始终都记得围棋是起源于我们中国,但是围棋的起源作为我

学习

大班语言绕口令扁担和板凳教案精选

阅读(34)

本文为您介绍大班语言绕口令扁担和板凳教案精选,内容包括大班语言绕口令扁担和板凳,大班绕口令板凳扁担反思,大班绕口令大全100首扁担长板凳宽。在教学工作者开展教学活动前,可能需要进行教案编写工作,教案有助于顺利而有效地开展教学活动

学习

中国哲学简史读书心得通用

阅读(16)

本文为您介绍中国哲学简史读书心得通用,内容包括中国哲学简史读书心得1500,中国哲学简史读书笔记摘抄及感悟,关于中国哲学史的读书心得。当在某些事情上我们有很深的体会时,常常可以将它们写成一篇心得体会,这样就可以总结出具体的经验和

学习

必备日记作文300字

阅读(28)

本文为您介绍必备日记作文300字,内容包括无聊的一天作文300字日记,三年级作文日记300个字,逛庙会日记作文300个字。一天即将完结,相信大家一定感触颇深吧,此时此刻我们需要写一篇日记了。那如何写一篇漂亮的日记呢?以下是收集整理的日记作

学习

书法活动方案精选

阅读(22)

本文为您介绍书法活动方案精选,内容包括书法活动方案,书法活动方案怎么写范文,书法比赛活动方案美篇。为保障事情或工作顺利开展,就常常需要事先准备方案,方案是书面计划,是具体行动实施办法细则,步骤等。那么问题来了,方案应该怎么写?下面是

学习

中国古代经典谚语精选

阅读(21)

本文为您介绍中国古代经典谚语精选,内容包括经典百种古代中国谚语一览表,中国谚语500句句句经典值得一看,古代民间谚语经典大全。无论在学习、工作或是生活中,大家一定没少看到过谚语吧,谚语通常是用简单通俗的话来反映深刻的道理。你还在

学习

全国93所大学考研率排行榜

阅读(20)

本文为您介绍全国93所大学考研率排行榜,内容包括三十六所大学考研率排名,2023年各高校考研率排行。全国93所大学考研率排行榜(2023)全国93所高校考研率排行榜中,北京大学排名倒数第一,也就是第106名,倒数第二名的是北京师范大学,倒数第三名

学习

《中国哲学简史》读书笔记范文精选

阅读(30)

本文为您介绍《中国哲学简史》读书笔记范文精选,内容包括中国哲学史的读书笔记,中国哲学简史第四章读书笔记100字,中国哲学简史读书笔记摘抄手写。品味完一本名著后,大家对人生或者事物一定产生了许多感想,这时就有必须要写一篇读书笔记了

学习

中国古代的神话故事

阅读(22)

本文为您介绍中国古代的神话故事,内容包括中国古代的神话故事集,中国古代的神话故事动画,中国古代的神话故事怎么说。无论在学习、工作或是生活中,大家一定没少看到过神话故事吧,神话具有一定的地域性和区域性,不同的文明或者民族都有自己

学习

参加经典诵读比赛倡议书精选

阅读(26)

本文为您介绍参加经典诵读比赛倡议书精选,内容包括经典诵读大赛倡议书,经典诵读倡议书,经典诵读比赛篇目推荐。在我们平凡的日常里,接触并使用倡议书的人越来越多,倡议书是日常应用写作中的一种常用文体。还是对倡议书一筹莫展吗?下面是收

学习

书法之路作文精选

阅读(24)

本文为您介绍书法之路作文精选,内容包括我的书法之路作文优秀,书法之路该怎么走,我的书法之路。在日常学习、工作或生活中,大家对作文都不陌生吧,作文是人们以书面形式表情达意的言语活动。那么,怎么去写作文呢?以下是为大家整理的书法之路

学习

大花虎刺梅的养殖方法和植物文化

阅读(49)

本文为您介绍大花虎刺梅的养殖方法和植物文化,内容包括虎刺梅大花品种与小花品种哪个好,大花虎刺梅是独杆怎么让它发侧枝,大花虎刺梅花朵不红不鲜艳怎么办。虎刺梅喜温暖、湿润和阳光充足的环境。稍耐阴,耐高温,较耐旱,不耐寒。以疏松、排

学习

蒲松龄中国古代诗人简介

阅读(19)

本文为您介绍蒲松龄中国古代诗人简介,内容包括诗人蒲松龄的简介,古代诗人蒲松龄的作品,蒲松龄什么朝代诗人。蒲松龄(1640年6月5日-1715年2月25日),字留仙,一字剑臣,别号柳泉居士,世称聊斋先生,自称异史氏。济南府淄川(今山东省淄博市淄川区洪山镇

学习

关于加拿大留学法学专业学生成功办理留学签证的经验分享

阅读(19)

本文为您介绍关于加拿大留学法学专业学生成功办理留学签证的经验分享,内容包括加拿大留学sds签证好办吗,加拿大成人留学签证申请流程,关于加拿大留学签证申请的方法。作为一名留学加拿大的大专生,面对着语言、文化、学习等多重挑战,我们

学习

《生成课程》介绍

阅读(24)

本文为您介绍《生成课程》介绍,内容包括如何设计生成课程,生成课程幼儿园,生成课程是怎么上的。生成课程就是指:以真正的对话情境为依托,在教师、学生、教材、环境等多种因素的持续相互作用过程中动态生长的建构性课程。以下是为大家整理

学习

《反比例函数》教师教案(优秀)

阅读(29)

本文为您介绍《反比例函数》教师教案(优秀),内容包括反比例函数教学设计精选7篇,反比例函数整章教案。因为反比例关系是一种重要的数量关系,它渗透了初步的函数思想,又为中学数学的反比例函数的教学奠定基础,所以是六年级数学教学的一个重点

学习

初中数学函数知识点总结通用

阅读(18)

本文为您介绍初中数学函数知识点总结通用,内容包括初三反比例函数知识点归纳总结,初中数学二次函数知识点归纳大全。总结是对某一特定时间段内的学习和工作生活等表现情况加以回顾和分析的一种书面材料,它能够使头脑更加清醒,目标更加明确

学习

高一年级数学幂函数知识点

阅读(41)

本文为您介绍高一年级数学幂函数知识点,内容包括高一数学上学期幂函数讲解,高一数学必修一幂函数。以往的教师在把握教材是,大都是有什么教什么,不能够灵活的使用教材。而今的数学教学要求把学生的生活经验带到课堂,要求在简单的知识框架和

学习

八年级上册数学函数知识点【优秀】

阅读(23)

本文为您介绍八年级上册数学函数知识点【优秀】,内容包括八年级函数知识点归纳,八年级一次函数知识点。漫长的学习生涯中,不管我们学什么,都需要掌握一些知识点,知识点就是一些常考的内容,或者考试经常出题的地方。想要一份整理好的知识点吗

学习

第10号台风达维生成

阅读(51)

第10号台风达维生成_8月25日5时台风达维生成据悉,2023年8月25日5时,第10号台风“达维,生成于关岛东偏北方向约920公里的洋面上。以下是整理的第10号台风达维生成,希望可以提供给大家进行参考和借鉴。第10号台风达维生成2023年8月25日5时,第10

学习

三台风共舞!第11号台风海葵生成

阅读(32)

本文为您介绍三台风共舞!第11号台风海葵生成,内容包括11月11号台风海葵路径图,第24号台风海葵生成。三台风共舞!第11号台风海葵生成据气象部门消息,今年第11号台风“海葵”已在西北太平洋洋面生成。这个名字来自中国,意义是一种形状如花朵