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语言随机数生成函数和时间函数

学习

艾青《我爱这土地》赏析

阅读(23)

本文为您介绍艾青《我爱这土地》赏析,内容包括艾青我爱这土地句子赏析,艾青我爱这土地原文赏析,艾青我爱这土地作品赏析。在日复一日的学习、工作或生活中,大家一定都接触过一些使用较为普遍的诗歌吧,诗歌具有精炼含蓄的特点,起着反映社会

学习

基层医生的平凡事迹精选

阅读(33)

本文为您介绍基层医生的平凡事迹精选,内容包括平凡岗位上的基层医生事迹,最美基层医生事迹材料,基层医生个人先进事迹范文。基层医生的平凡事迹(精选23篇)

学习

实习计划精选

阅读(29)

本文为您介绍实习计划精选,内容包括实习计划内容怎么写,实习计划怎么写,实习计划规划表。时间流逝得如此之快,相信大家对即将到来的工作生活满心期待吧!是时候抽出时间写写计划了。你所接触过的计划都是什么样子的呢?下面是精心整理的实习

学习

秋去冬来的唯美短句精选

阅读(27)

本文为您介绍秋去冬来的唯美短句精选,内容包括秋去冬来的唯美短句子,秋去冬来文案,秋去冬来的唯美诗句。秋已经落幕,繁华褪尽,冬来了。大地由热闹逐渐转为安静,仿佛生命久经放纵后,归隐沉淀,开始懂得收藏。以下是收集整理的秋去冬来的唯美短

学习

农村公路建设现状的调研报告范文精选

阅读(21)

本文为您介绍农村公路建设现状的调研报告范文精选,内容包括农村公路建设现状的调研报告范文,关于农村公路的调研报告,农村公路调研报告范文。在现在社会,报告不再是罕见的东西,我们在写报告的时候要注意逻辑的合理性。你还在对写报告感到

学习

课标解读心得体会精选

阅读(27)

本文为您介绍课标解读心得体会精选,内容包括课标解读心得体会1500字,课标解读培训心得体会,课标解读心得。当我们积累了新的体会时,常常可以将它们写成一篇心得体会,这样我们就可以提高对思维的训练。一起来学习心得体会是如何写的吧,以下

学习

私人小企业员工管理制度精选

阅读(28)

本文为您介绍私人小企业员工管理制度精选,内容包括私人小企业员工管理制度免费,小型企业员工管理制度,公司员工管理制度完整版。在现实社会中,大家逐渐认识到制度的重要性,好的制度可使各项工作按计划按要求达到预计目标。那么你真正懂得

学习

记者实习心得体会通用

阅读(28)

本文为您介绍记者实习心得体会通用,内容包括记者实习心得体会范文,记者实习心得体会3000字,电视台记者实习报告范文。一、记者主要分类

学习

读《终身成长》有感

阅读(21)

本文为您介绍读《终身成长》有感,内容包括终身成长感悟与收获,终身成长心得感悟,终身成长心得与感受和收获。读完一本经典名著后,大家心中一定有不少感悟,记录下来很重要哦,一起来写20篇读后感吧。那么你真的懂得怎么写读后感吗?以下是为大

学习

个人还款计划书通用

阅读(28)

本文为您介绍个人还款计划书通用,内容包括个人之间还款计划书范文,还款计划书个人范本,个人还款计划书。时间的脚步是无声的,它在不经意间流逝,我们的工作又进入新的阶段,为了在工作中有更好的成长,该为自己下阶段的学习制定一个计划了。想

学习

记者活动方案

阅读(21)

本文为您介绍记者活动方案,内容包括记者节活动策划方案,记者工作室活动方案,记者日活动方案。为了确保事情或工作有序有力开展,常常需要提前进行细致的方案准备工作,一份好的方案一定会注重受众的参与性及互动性。那要怎么制定科学的方案

学习

艾青《我爱这土地》读书心得通用

阅读(20)

本文为您介绍艾青《我爱这土地》读书心得通用,内容包括艾青诗选我爱这土地阅读心得,艾青写的我爱这土地的读后感,我爱这土地艾青读书笔记。艾青《我爱这土地》读书心得(通用9篇)

学习

在婚礼上的致辞精选

阅读(22)

本文为您介绍在婚礼上的致辞精选,内容包括在婚礼上的致辞领导,在婚礼上的致辞证婚人,在婚礼上的经典致辞。在婚礼上的致辞(精选27篇)

学习

记者节新闻策划方案精选

阅读(25)

本文为您介绍记者节新闻策划方案精选,内容包括中国记者节活动策划方案,记者节新闻报道策划方案,记者节新闻策划。方案属于计划类文书的一种。那么方案应该怎么制定才合适呢?下面是帮大家整理的记者节新闻策划方案(精选13篇),欢迎大家借鉴与

学习

中学生成绩单上的评语

阅读(25)

本文为您介绍中学生成绩单上的评语,内容包括学生评语大全精短200字,学生绩点评语大全,初中生中等生成绩单评语。在现实生活或工作学习中,大家总少不了要接触或使用评语吧,借助评语能够激发和维持被评价对象的内在动力,调动其内部潜力。你所

学习

PHPsocket函数讲解

阅读(23)

本文为您介绍PHPsocket函数讲解,内容包括php中socket的用法示例详解,phpsocket编程讲解,phpsocket自动化。PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利

学习

小学生成绩没考好的检讨书精选

阅读(33)

本文为您介绍小学生成绩没考好的检讨书精选,内容包括小学生成绩退步检讨书,小学成绩没考好的检讨书,小学生成绩考差了的检讨书。在不小心犯错后,为了避免再犯,往往被要求写检讨书来自我悔过,写检讨书是为了能够不断提醒自己。相信很多朋友

学习

关于初中历史生成性教学研究总报告通用

阅读(24)

本文为您介绍关于初中历史生成性教学研究总报告通用,内容包括初中历史学科行动研究报告,初中历史教学课题研究方案范文,初中历史教学方法报告标题。在我们平凡的日常里,越来越多的事务都会使用到报告,要注意报告在写作时具有一定的格式。

学习

生成实习报告大全

阅读(25)

本文为您介绍生成实习报告大全,内容包括实习报告模板集锦10篇,实习报告实习内容怎么写。在部门内的与STK相关的设备都比较复杂,而这些设备的操作都是通过电脑来控制的。部门培训仅是叫我们对自己的岗位有了简单的了解,进入科室以后我们都

学习

学生成绩下降检讨书(通用)

阅读(32)

本文为您介绍学生成绩下降检讨书(通用),内容包括关于成绩下降的检讨书,学生考试成绩差检讨书模板8篇,孩子成绩下降检讨书。在学习、工作或生活中出现了过错后,往往要写检讨书来自我反思,请注意写检讨书的心态要端正。那么对应的检讨书到底怎

学习

C语言函数参数传递问题

阅读(28)

本文为您介绍C语言函数参数传递问题,内容包括c语言函数参数传递,python函数参数传递,c语言指针传递参数。在一些C语言教材和参考资料中,常常把函数参数传递分为“数值传递”和“地址传递”两种方式,这种概念模糊的分类方法给初学者的理解

学习

数学函数知识点

阅读(69)

本文为您介绍数学函数知识点,内容包括数学函数知识点整理,数学函数知识点初中,数学函数知识点归纳高中。漫长的学习生涯中,大家都背过不少知识点,肯定对知识点非常熟悉吧!知识点是指某个模块知识的重点、核心内容、关键部分。掌握知识点有